我想解析子目錄中的所有文件* .c,並將字符串前綴爲文件名並將文件放在同一子目錄中。解析並更改所有子目錄中的文件
例如,如果dir1/subdir1/test.c中有文件,我想將該文件名更改爲xyztest.c並將其放在dir1/subdir1 /中。怎麼做?
我想在bash腳本中做。
感謝,
我想解析子目錄中的所有文件* .c,並將字符串前綴爲文件名並將文件放在同一子目錄中。解析並更改所有子目錄中的文件
例如,如果dir1/subdir1/test.c中有文件,我想將該文件名更改爲xyztest.c並將其放在dir1/subdir1 /中。怎麼做?
我想在bash腳本中做。
感謝,
與while循環應該這樣做find命令:
PREFIX=xyz;
while read line
do
path="$(dirname $line)"
base="$(basename $line)";
mv "${line}" "$path/${PREFIX}${base}"
done < <(find dir1 -name "*.c")
謝謝,這就像一個魅力。 – user1293997 2012-03-26 21:28:34
你需要的是:
find
命令)basename
和dirname
)這應該做到這一點。
find dir -name '*.c' -printf 'mv "%p" "%h/xyz%f"\n' | sh
,如果你有雙引號的文件名這將失敗,或varous其他shell字符;但如果你不這樣做,這是一個很好的單線程。
這是作業嗎? – 2012-03-26 20:49:19
什麼語言?這非常含糊。 – FlavorScape 2012-03-26 20:50:06