我确信这可以通过bash脚本实现,但我想确保我没有遗漏任何明显的东西。谷歌没有太多帮助,所以也许你可以。
假设目录包含以下文件
var picurl = "https://lh3.ggpht.com/lF8X5d9R-agU1_vrapxP8r8gxZjP21awryU_FLExYvvnReGMOp39tRxI4gSY9yqNyuRO=w300";
$.ajax({
url: picurl,
success: function(data){
var pic = $('<img>');
pic.attr( 'src', picurl );
pic.appendTo( 'body' );
},
});
我想找出最佳解决方案,根据文件名的前两个字母将文件夹中的所有文件复制到2级深的文件夹,结果将是
dir/file1
dir/newfile2
dir/oldfile3
答案 0 :(得分:4)
这样的事情应该这样做:
cd dir
for file in *; do
newpath="${file:0:1}/${file:1:1}"
mkdir -p "$newpath"
cp "$file" "$newpath"
done
请确保您的所有文件名都是两个字符或更多。
${var:n:m}
只是“var
的子字符串的Bash语法,从长度为n
的{{1}}开始。”
如果还可以有任意子目录,如果要递归复制或添加测试以忽略m
循环中的目录,请将-r
添加到cp
命令:
for