이름을 바꾼 후 이름 바꾸기 명령이 파일을 하위 디렉터리에서 상위 디렉터리로 이동하지 못하도록 하는 옵션이 있습니까?

이름을 바꾼 후 이름 바꾸기 명령이 파일을 하위 디렉터리에서 상위 디렉터리로 이동하지 못하도록 하는 옵션이 있습니까?

상위 디렉터리 내에 다음 하위 디렉터리가 있습니다./

find . -type d|sort
.
./M1_DMSO_120h
./M1_DMSO_24h
./M1_GW4869_120h
./M1_GW4869_24h
./M2_DMSO_120h
./M2_DMSO_24h
./M2_GW4869_120h
./M2_GW4869_24h
./M3_DMSO_120h
./M3_DMSO_24h
./M3_GW4869_120h
./M3_GW4869_24h
find . -type f -maxdepth 2 |sort
./M1_DMSO_120h/GSM7073729_M1_DMSO_120h_barcodes.tsv.gz
./M1_DMSO_120h/GSM7073729_M1_DMSO_120h_features.tsv.gz
./M1_DMSO_120h/GSM7073729_M1_DMSO_120h_matrix.mtx.gz
./M1_DMSO_24h/GSM7073723_M1_DMSO_24h_barcodes.tsv.gz
./M1_DMSO_24h/GSM7073723_M1_DMSO_24h_features.tsv.gz
./M1_DMSO_24h/GSM7073723_M1_DMSO_24h_matrix.mtx.gz
./M1_GW4869_120h/GSM7073732_M1_GW4869_120h_barcodes.tsv.gz
./M1_GW4869_120h/GSM7073732_M1_GW4869_120h_features.tsv.gz
./M1_GW4869_120h/GSM7073732_M1_GW4869_120h_matrix.mtx.gz
./M1_GW4869_24h/GSM7073726_M1_GW4869_24h_barcodes.tsv.gz
./M1_GW4869_24h/GSM7073726_M1_GW4869_24h_features.tsv.gz
./M1_GW4869_24h/GSM7073726_M1_GW4869_24h_matrix.mtx.gz
./M2_DMSO_120h/GSM7073730_M2_DMSO_120h_barcodes.tsv.gz
./M2_DMSO_120h/GSM7073730_M2_DMSO_120h_features.tsv.gz
./M2_DMSO_120h/GSM7073730_M2_DMSO_120h_matrix.mtx.gz
./M2_DMSO_24h/GSM7073724_M2_DMSO_24h_barcodes.tsv.gz
./M2_DMSO_24h/GSM7073724_M2_DMSO_24h_features.tsv.gz
./M2_DMSO_24h/GSM7073724_M2_DMSO_24h_matrix.mtx.gz
./M2_GW4869_120h/GSM7073733_M2_GW4869_120h_barcodes.tsv.gz
./M2_GW4869_120h/GSM7073733_M2_GW4869_120h_features.tsv.gz
./M2_GW4869_120h/GSM7073733_M2_GW4869_120h_matrix.mtx.gz
./M2_GW4869_24h/GSM7073727_M2_GW4869_24h_barcodes.tsv.gz
./M2_GW4869_24h/GSM7073727_M2_GW4869_24h_features.tsv.gz
./M2_GW4869_24h/GSM7073727_M2_GW4869_24h_matrix.mtx.gz
./M3_DMSO_120h/GSM7073731_M3_DMSO_120h_barcodes.tsv.gz
./M3_DMSO_120h/GSM7073731_M3_DMSO_120h_features.tsv.gz
./M3_DMSO_120h/GSM7073731_M3_DMSO_120h_matrix.mtx.gz
./M3_DMSO_24h/GSM7073725_M3_DMSO_24h_barcodes.tsv.gz
./M3_DMSO_24h/GSM7073725_M3_DMSO_24h_features.tsv.gz
./M3_DMSO_24h/GSM7073725_M3_DMSO_24h_matrix.mtx.gz
./M3_GW4869_120h/GSM7073734_M3_GW4869_120h_barcodes.tsv.gz
./M3_GW4869_120h/GSM7073734_M3_GW4869_120h_features.tsv.gz
./M3_GW4869_120h/GSM7073734_M3_GW4869_120h_matrix.mtx.gz
./M3_GW4869_24h/GSM7073728_M3_GW4869_24h_barcodes.tsv.gz
./M3_GW4869_24h/GSM7073728_M3_GW4869_24h_features.tsv.gz
./M3_GW4869_24h/GSM7073728_M3_GW4869_24h_matrix.mtx.gz

이제 각 하위 디렉터리에서 다음과 같이 보이도록 각 파일의 헤더를 제거하고 싶습니다.

 barcodes.tsv.gz
 features.tsv.gz
 matrix.mtx.gz

나는 rename 다음 방법을 사용하여 이 작업을 시도했습니다.

rename "s/M\d.+_//g"  M*/*

그러나 이름을 바꾸면 이름이 바뀐 파일이 상위 디렉터리로 이동됩니다.

덜 우아한 솔루션은 for loop and rename다음을 사용합니다.

for i in $(cat dir.name) ; do cd $i ; rename  "s/GSM\d.+_//g"  *.gz ; cd .. ;done

있는지 알고 싶습니다.옵션?를 rename사용 하지 않고 이 작업을 완료하세요.for loop

내 시스템:

sw_vers
ProductName:        macOS
ProductVersion:     13.6
BuildVersion:       22G120

관련 정보