Macos 如何使用Mac OS X终端将目录中最旧或最新的文件移动到另一个目录
我试图在Mac OSX 10.6终端上使用以下命令,但它不起作用。知道我可能做错了什么吗 这些工作 列出最近的文件:Macos 如何使用Mac OS X终端将目录中最旧或最新的文件移动到另一个目录,macos,bash,command-line,Macos,Bash,Command Line,我试图在Mac OSX 10.6终端上使用以下命令,但它不起作用。知道我可能做错了什么吗 这些工作 列出最近的文件: ls -l -t | head -2 $ ls -gt | tail -1 列出最早的文件: ls -l -t | head -2 $ ls -gt | tail -1 但是,当我尝试移动最旧的文件时,此操作无效: mv `ls -tr |tail -1` newdirname 任何想法或建议都将不胜感激!!请温柔点,我还不太擅长这个命令行;) 谢谢 杰斯 附言 当我输
ls -l -t | head -2
$ ls -gt | tail -1
列出最早的文件:
ls -l -t | head -2
$ ls -gt | tail -1
但是,当我尝试移动最旧的文件时,此操作无效:
mv `ls -tr |tail -1` newdirname
任何想法或建议都将不胜感激!!请温柔点,我还不太擅长这个命令行;)
谢谢
杰斯
附言
当我输入以下内容时:
mv `ls -tr |tail -1` DropBox
我得到以下信息:
mv:将Test.txt重命名为DropBox/Test.txt:没有这样的文件或目录
假设您正在移动的文件位于当前目录中:
mv "`ls -1t | tail -1`" dir_to_move_to
文件名中空格的报价帮助,但我认为我的答案并不优雅,还有更优雅的解决方案吗?假设要移动的文件位于当前目录中:
mv "`ls -1t | tail -1`" dir_to_move_to
引用文件名中空格的帮助,但我认为我的答案并不优雅,还有更优雅的解决方案吗?将参数
-1
添加到ls
将解决这个问题。似乎osx'ls没有正确检查它是否打印到终端或管道。将参数-1
添加到ls
将解决此问题。osx'ls似乎没有正确检查它是否打印到终端或管道。您正在移动最新的文件。试一试
mv `ls -t |tail -1` newdirname
或
正在使用我的Ubuntu的bash。您正在移动最新的文件。试一试
mv `ls -t |tail -1` newdirname
或
在我的Ubuntu的bash上工作。我找到了这个问题的另一个答案。最好使用find命令,而不是使用ls命令。它将有助于找到最旧的文件,并可以使用mv命令移动到另一个目录
mv$(find/home/balaji/work/-type f-printf'%T+%p\n'| sort | head-1)/home/balaji/regular|archive
查找
–在目录层次结构中搜索文件。
/home/balaji/work/
–搜索位置。
/home/balaji/regular_archieve/
–目标位置。
type-f
–只搜索常规文件。
-printf“%T+%p\n”
–以+符号分隔打印文件的上次修改日期和时间。(例如2015-07-22+13:42:40.0000000000)。此处,%p表示文件名\n表示新行。
sort | head-n1
–sort命令对输出进行排序,并将输出发送到head命令以显示最旧的文件。这里,-n1表示只有一个文件,即最旧的文件。我找到了问题的另一个答案。最好使用find命令,而不是使用ls命令。它将有助于找到最旧的文件,并可以使用mv命令移动到另一个目录
mv$(find/home/balaji/work/-type f-printf'%T+%p\n'| sort | head-1)/home/balaji/regular|archive
查找
–在目录层次结构中搜索文件。
/home/balaji/work/
–搜索位置。
/home/balaji/regular_archieve/
–目标位置。
type-f
–只搜索常规文件。
-printf“%T+%p\n”
–以+符号分隔打印文件的上次修改日期和时间。(例如2015-07-22+13:42:40.0000000000)。此处,%p表示文件名\n表示新行。
sort | head-n1
–sort命令对输出进行排序,并将输出发送到head命令以显示最旧的文件。此处,-n 1仅表示一个文件,即最旧的文件。启动命令时会发生什么?看起来很好,可以在linux上运行。西蒙,我添加了上面的输出。也可以在雪豹上运行。有没有要发布的错误消息?启动命令时会发生什么?看起来很好,可以在linux上运行。西蒙,我添加了上面的输出。也可以在雪豹上运行。是否要发布任何错误消息?如果文件名包含空格,则此操作无效。您应该更改命令行以引用子shell执行结果。请告知我们修改后的命令不太幸运。如果文件名包含空格,则此命令将不起作用。您应该更改命令行以引用子shell执行结果。请告知我们修改后的命令