我有一個像這樣的文件夾結構: 一個名爲Photos的大型父文件夾。該文件夾包含900多個子文件夾,分別命名爲a_000,a_001,a_002等。如何將文件從子文件夾移動到其父目錄(unix,終端)
每個子文件夾都包含更多的子文件夾,名爲dir_001,dir_002等。每個子文件夾都包含大量圖片(具有唯一名稱)。
我想將包含在a_xxx的子目錄中的所有這些圖片移動到a_xxx中。 (其中xxx可以是001,002等)
四處尋找類似的問題後,這是我想出了最接近的解決方案:
for file in *; do
if [ -d $file ]; then
cd $file; mv * ./; cd ..;
fi
done
另一種解決方案我正在做一個bash腳本:
#!/bin/bash
dir1="/path/to/photos/"
subs= `ls $dir1`
for i in $subs; do
mv $dir1/$i/*/* $dir1/$i/
done
不過,我錯過了一些東西,你能幫忙嗎?
(然後,它會很高興地丟棄空dir_yyy,但此刻沒有太大的問題)
或許你也應該問這在Unix LINIX SE,因爲它是不是一個真正的編程問題,執行它。但作爲一個提示,在每個a_xxx目錄內部做一些事情,比如find。 -type f -exec mv \ {\}。 \;'可能是你在找什麼 – infixed
嗨。我有900多個文件夾,但我不會爲每個文件夾都做這件事。如果SO不是發佈的地方,我很抱歉。就是在這裏我找到了更相關的例子:[link1](http://stackoverflow.com/questions/23546294/copy-files-from-subfolders-to-the-nearest-parent-directory-in-unix)和[ link2](http://stackoverflow.com/questions/22228718/using-for-loop-to-move-files-from-subdirectories-to-parent-directories) – Mpampirina
確定關於'mv * ./;'部分?因爲在我看來,需要兩個點(用於父目錄),比如'mv * ../;'也許 – arhak