相关疑难解决方法(0)

带有空格的文件名 for 循环,查找命令

我有一个脚本,可以将多个子文件夹和存档中的所有文件搜索到 tar。我的脚本是

for FILE in `find . -type f  -name '*.*'`
  do
if [[ ! -f archive.tar ]]; then

  tar -cpf archive.tar $FILE
else 
  tar -upf archive.tar $FILE 
fi
done
Run Code Online (Sandbox Code Playgroud)

find 命令给了我以下输出

find . -type f  -iname '*.*'
./F1/F1-2013-03-19 160413.csv
./F1/F1-2013-03-19 164411.csv
./F1-FAILED/F2/F1-2013-03-19 154412.csv
./F1-FAILED/F3/F1-2011-10-02 212910.csv
./F1-ARCHIVE/F1-2012-06-30 004408.csv
./F1-ARCHIVE/F1-2012-05-08 190408.csv
Run Code Online (Sandbox Code Playgroud)

但是FILE变量只存储路径的第一部分./F1/F1-2013-03-19,然后是下一部分160413.csv

我尝试使用readwhile 循环,

while read `find . -type f  -iname '*.*'`;   do ls $REPLY; done
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误

bash: read: `./F1/F1-2013-03-19': not a valid …
Run Code Online (Sandbox Code Playgroud)

bash scripts find

48
推荐指数
3
解决办法
11万
查看次数

递归地将文件从一个目录复制到另一个目录

我所有的音乐都在一个文件夹中/media/kalenpw/MyBook/Music/ABunchOfOtherFoldersWithFilesInside。我想复制所有的 mp3,/media/kalenpw/HDD/Music所以我使用了:

cp -R /media/kalenpw/MyBook/Music/*.mp3 /media/kalenpw/HDD/Music
Run Code Online (Sandbox Code Playgroud)

然而,这只复制了根音乐文件夹中的 mp3,并没有打开任何艺术家子目录并复制这些文件。

我的印象-R是递归复制所有文件。我怎样才能实现上述目标?

command-line music transfer cp copy

13
推荐指数
2
解决办法
6万
查看次数

标签 统计

bash ×1

command-line ×1

copy ×1

cp ×1

find ×1

music ×1

scripts ×1

transfer ×1