【发布时间】:2014-07-30 02:30:27
【问题描述】:
更多细节:
- 我想先在桌面上新建一个目录。目录的名称将是当前日期和时间。
- 我想将当前工作目录中在过去 20 分钟内修改过的所有文件(递归)复制到该新文件夹中。
- 最后,我打算给它加上别名,让它看起来不是一个已知的命令,所以我回显了一个假的“找不到命令”
这是我想出的:(全部为 1 行,为便于阅读而拆分)
mkdir ~/Desktop/$(date +%F-%T)
&& find . -mmin -20 -exec cp -r {} ~/Desktop/$(date +%F-%T) \;
&& echo "bash: cr: command not found"
我不喜欢我为副本指定目标目录的方式,因为我不得不再次获取日期和时间。
这是我的第二次尝试,更改为粗体:
mkdir ~/Desktop/$(date +%F-%T)
&& find . -mmin -20 -exec cp -r {} **$(find ~/Desktop/ -type f -cmin -1)** \;
&& echo "bash: cr: command not found"
这一次,我只抓取桌面上不到一分钟前创建的文件夹。考虑到如果我在 60 秒内运行命令 2 次,这对我来说似乎仍然是一个弱解决方案,它将失败,因为“查找”(粗体)将返回 2 个对 cp 命令无效的文件夹...
现在我提出的挑战是,如果我的当前目录是桌面,我该如何进行这项工作?我不想将新创建的文件夹复制到自身中!另外,我怎样才能避免从 cp 获得任何额外的输出?有时我会收到警告/错误,告诉我我正在尝试将文件复制到它已经存在的相同位置!
任何其他实现此目的的方法都非常受欢迎,但我很好奇如何修改我的方法以使其正常工作
提前致谢!
【问题讨论】: