我一直在努力学习更多关于Linux的知识,并且今天早上专注于awk命令。下面是我一直试图开展工作的命令。使用AWK输出的Linux CP
ls -lRt lpftp.* | awk '{print $7, $9}' | mkdir -p $(awk '{print $1}') | ls -lRt lpftp.* | cp $(awk '{print $9, $7}')
本质上我试图将目录中的每个文件移动到基于该文件上次修改日期的子目录中。该命令首先仅打印我想要的文件,然后使用mkdir根据上次修改月份的当天创建文件夹。我想以后做的就是每个文件移动到其相关目录,但该指令是现在每个文件移动到01文件夹和每个目录打印出来,一旦下面的文字
cp: 0653-436 12 is a directory.
Specify -r or -R to copy.
。
没有人知道我该如何解决这个问题?或者如果有更好的方法去解决它?
你为什么将'mkdir'的输出传送到'ls'? 'mkdir'不会产生任何输出(除了错误消息)并且'ls'不使用它的输入。 – Barmar
第二个LS语句的原因是因为在mkdir之后,我无法从原始LS访问文件名,所以为了重新创建该列表我再次运行它。有没有更好的方法? – Cronisej
@Cronisej是的,看我的答案。 – eddiem