2014-01-18 34 views

回答

0

這裏有一種方法:

$./script.sh | (Do what you want here) 
0

你可以在端部定義更多的線:

find folder/folder{1,2,3} -type f -name 'file' -exec bash -c 'mv -v {} $(dirname {})/new_name_file' \; 
0

一行代碼:

#!/bin/bash                                   

while read dir diir; do 
    mv $dir $diir 
done <<___HERE                                   
/path/to/dir1 /path/to/diir1                               
/path/to/dir2 /path/to/diir2                               
___HERE 

您可以在一個行中運行:

$ mkdir foo bar baz 
$ touch {foo,bar,baz}/quux 
$ find foo bar baz -type f -name quux | while read file; do mv "$file" $(dirname "$file")/xyxxy; done 
$ find foo bar baz -type f -name xyxxy 
foo/xyxxy 
bar/xyxxy 
baz/xyxxy 
0

對於這個特定的情況下,你可以使用:

echo folder/{folder1,folder2,...} | xargs -n1 echo |xargs -I% mv %/oldfile %/newfile 

但更便於攜帶一個重命名的子目錄中的所有文件將

rename(){ #usage rename from_name to_name 
    find . -name $1 |xargs -l dirname |xargs -I% mv %/$1 %/$2 
} 
相關問題