如何使用find和xargs(GNU Bash)将拼合的文件复制到一个目录中
|
我需要查找所有文件(例如,扩展名为ABC)并将其复制到一个目录中,但要创建唯一的文件名,而不要覆盖任何可能具有相同名称的文件。
像这样:
find /tmp -name \\*.ABC | xargs cp \'{}\' somedir/$(echo {} | md5sum | cut -c1-6){} \\;
创建文件,例如:
b786af1_original_name.ABC
a7af335_original_name_2.ABC
...
上面的命令显然无法工作,因为$(...)语句被求值一次。我需要对每个文件名进行评估。
怎么做?
没有找到相关结果
已邀请:
5 个回复
瞧叮
娠侈脚惮顽
使用此方法获得具有相同名称的相同文件的可能性很小。 资料来源:http://tldp.org/LDP/abs/html/timedate.html 编辑:实际上,这只会给您同样的问题。它需要成为一个班轮吗?
逆捐凶撤小
有关详细信息,变体等,请参见BashFAQ#20。
荒劫娇噬
甲车劲