zhipeng@ubuntu:~/test$
find ../mid/ -name *17岁* -print
../mid/17岁的烦恼 MIDI.zip
查找某个目录下 文件名含‘17岁’的文件
zhipeng@ubuntu:~/test$
find ../mid/ -name *17岁* -print | xargs unzip
unzip:
cannot find or open ../mid/17岁的烦恼, ../mid/17岁的烦恼.zip or ../mid/17岁的烦恼.ZIP.
使用xargs 其解压到当前目录,但文件名有空格,xargs会将管道前的输出当作标准输入:unzip ../mid/17岁的烦恼 MIDI.zip,这样执行肯定是错误的,需要转移,或者将输出当作一个参数输入
zhipeng@ubuntu:~/test$
find ../mid/ -name *17岁* -print | xargs -i unzip {}
Archive:
../电脑游戏MIDI/17岁的烦恼 MIDI.zip
zhipeng@ubuntu:~/test$ l
y14.mid
y15.mid
zhipeng@ubuntu:~/music/MIDI/file-midi$
ls .. | xargs -i find ../{}/result/result | xargs -i cp "{}" .
cp: 略过目录"../alas/result/result"
find: `../file-midi/result/result': 没有那个文件或目录(当前目录没有双层result目录)
cp: 略过目录"../midicn/result/result"
cp: 无法创建普通文件"./0056.MID": 权限不够
cp: 无法创建普通文件"./┬а║г.mid": 权限不够
...
xargs: 未匹配的 单 引用;默认情况下,引用是针对 xargs 的,除非您使用了 -0 选项
xargs: find:因信号 13 而终止
zhipeng@ubuntu:~/music/MIDI/file-midi$
ls .. | xargs -i find -H ../{}/result/result -iname '*mid*' -type f -exec cp {} . \;
cp: 无法获取"alas" 的文件状态(stat): 没有那个文件或目录
cp: 无法获取"alas" 的文件状态(stat): 没有那个文件或目录
......
^C
递归层数太多造成?
zhipeng@ubuntu:~/music/MIDI/file-midi$ ls ..
alas
file-midi
midicn
midishow
midyy
zhipeng@ubuntu:~/music/MIDI/file-midi$
find -H ../alas/result/result -iname '*mid*' -type f -exec cp {} . \;
zhipeng@ubuntu:~/music/MIDI/file-midi$
find -H ../midicn/result/result -iname '*mid*' -type f -exec cp {} . \;
cp: 无法创建普通文件"./
0024.MID": 权限不够
cp: 无法创建普通文件"./
0025.MID": 权限不够
zhipeng@ubuntu:~/music/MIDI/file-midi$
find -H ../midicn/result/result -iname '*mid*' -type f -exec sudo cp {} . \;
[sudo] password for zhipeng:
zhipeng@ubuntu:~/music/MIDI/file-midi$ ls ./0024.MID
./0024.MID
参考“
find、xargs命令使用及方法详解”