我一直在努力学习Linux,今天早上专注于awk命令。我一直在尝试使用以下命令。
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
也不会使用它的输入。 - Barmarls
语句。但我不理解的是,为什么你要把一些内容通过管道传递给它,而不是将其作为单独的命令运行。 - Barmar