在目錄~/temp/a/foo/
和~/temp/b/foo foo/
我有一些名爲bar1
,bar2
,bar bar1
,bar bar2
等雙引號VS星號文件名擴展中的Bash
我試圖寫一行猛砸,所有副本的這些文件的文件在包含「foo」作爲名稱的最後部分的目錄中,該目錄位於相應「foo」文件夾上方的文件夾中。
只要有在文件名中沒有空格,這是一件容易的事,但隨着foo foo
目錄打交道時,以下兩個命令失敗:
for dir in `find . -type d -name '*foo'` ; do cp $dir/* "$(echo $dir|sed 's_foo__g')" ; done
(該cp
命令無法看到的"foo foo"
最後foo
爲相同的目錄名稱的一部分。)
for dir in `find . -type d -name '*foo'` ; do cp "$dir/*" "$(echo $dir|sed 's_foo__g')" ; done
("$dir/*"
沒有展開。)
嘗試替換$dir/*
與"$(echo $dir/*)"
更不成功。
是否有一種簡單的方法來擴展$dir/*
以便cp
能夠理解?
請參閱http://mywiki.wooledge.org/DontReadLinesWithFor – 2013-03-16 23:34:27