我跑出來的選擇在這裏..bash腳本 - 重命名目錄包含*空間*()*所有文件 -
我看了一下各個崗位這裏這個話題,但出於某種原因答案不適合我。
我想要一個簡單的腳本來重命名給定文件夾中的所有文件爲任何東西!說一個計數器nr。即:
1.JPG
2.pdf
3.exe
我需要爲我的腳本的一部分,我不能移動的文件,因爲這些特殊字符:
我正在使用cygwin上一個win7機器
test01.jpg
test01 (2).jpg
test01 (2) - Copy.jpg
這是我需要的腳本它的工作的一部分:
pathF="d:/scripts/img/_sandbox/depFrom"
searchAll=$(find $pathF -type f | egrep ".*")
ct=0
for fAll in $searchAll; do
# echo -e $fAll
# echo -e "$ct"
old=$fAll
# new=$(sed "s/\ //g" $fAll)
mv -v $old $ct #$new
((ct++))
done
在這個例子中,我只是想處理,該文件是從WIN7即創建空格,但我需要處理() - 和空格來覆蓋所有。
這是我的控制檯輸出: 出於某種原因,它似乎停止/在空間分割之間和後延。
任何幫助,非常感謝。
============================================== ====================
編輯: 我已經試過這樣:
pathF="d:/scripts/img/_sandbox/depFrom"
searchAll=$(find $pathF -type f -printf "%f\n")
for fAll in $searchAll; do
echo -e $fAll
done
和輸出是這樣的:
test01
(2)
-
Copy.jpg
該文件夾中只有一個文件!
$ ls depFrom/
test01 (2) - Copy.jpg
$ find depFrom/ -type f -printf "%f\n"
test01 (2) - Copy.jpg
'x = 0; for i in * .jpg; do mv「$ i」$((++ x))。jpg; done'? – 123
我有相同的結果,這隻會增加文件的名稱。這個問題似乎是在閱讀文件.. –
有這麼多的競爭條件,你甚至沒有考慮過,這使得一個可靠的解決方案几乎不可能。但是,爲什麼你不要求[短文件名](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx#short_vs._long_names)呢?它保證不包含任何空格。 – IInspectable