如何遍历 ls 返回的文件

Erw*_*ann 0 ls

第一次和第二次调用是为了比较。这是我试图开始工作的第三次。

$ ls -a1 *mp3
DaftPunk_VeridisQuo.mp3
French79_AfterParty.mp3
French79_BetweentheButtons.mp3
French79_Hometown.mp3
$ find . -maxdepth 1 -type f -name '*mp3'
./French79_AfterParty.mp3
./French79_Hometown.mp3
./DaftPunk_VeridisQuo.mp3
./French79_BetweentheButtons.mp3
$ for x in "$(ls -a *mp3)"; do mv "./$x" "./electro_$x"; done
mv: cannot stat './DaftPunk_VeridisQuo.mp3'$'\n''French79_AfterParty.mp3'$'\n''French79_BetweentheButtons.mp3'$'\n''French79_Hometown.mp3': No such file or directory
Run Code Online (Sandbox Code Playgroud)

JJo*_*oao 8

我更喜欢直接使用它:

for x in *.mp3
do 
    mv ./"$x"  "electro_$x"
done
Run Code Online (Sandbox Code Playgroud)

  • 这是一种防止文件名在以破折号开头的情况下被解析为选项列表的方法 - 您可能希望将其更改为 `mv -- "$x" "electro_$x"` 这可能更多惯用语(我无法决定......现在我倾向于后者) (2认同)