-2
我正在Linux上工作, 我有一個文件夾包含許多子文件夾,在每個子文件夾中有一個名爲Analyze.txt的文件。 我想將所有這些文件(Analyze.txt)移動到一個文件夾中,並將文件Analyze.txt的名稱更改爲其源自的子文件夾的名稱。linux如何將文件名更改爲其文件夾的名稱?
感謝,
拉茲
我正在Linux上工作, 我有一個文件夾包含許多子文件夾,在每個子文件夾中有一個名爲Analyze.txt的文件。 我想將所有這些文件(Analyze.txt)移動到一個文件夾中,並將文件Analyze.txt的名稱更改爲其源自的子文件夾的名稱。linux如何將文件名更改爲其文件夾的名稱?
感謝,
拉茲
創建一個bash腳本.SH並給它正確的權限
chmod +x <file>.sh
讓我們看到代碼編寫成劇本。
cd <path-to-root>
現在你需要循環的每個子文件夾,文件重命名,然後將其移動到目標目錄:所有移動到根目錄下的 首先
for dir in `ls`; do
if [[ -d $dir ]]; then
cd $dir
mv ./Analyze.txt ./$dir.txt
mv ./$dir.txt <path-to-dest-directory>
cd ..
fi
done
有了這個代碼我假定目標目錄不在樹的根目錄中。
是否可以操作$ dir以僅包含部分文件夾名稱?例如$ dir =^[0-9] * - [0-9] * - [0-9] * _ [0-9h] * - [0-9m] * - [0-9s] * _( 。*);那麼$ name = $ 1#(。*)? – xbarvazx
是的,你可以使用正則表達式。看看這個答案:[Bash正則表達式if語句](http://stackoverflow.com/questions/18709962/bash-regex-if-statement)@xbarvazx – fattidare