我必须将最新修改的文件从文件夹移动到一个unix脚本文件中的另一个文件夹。
正在使用
cd /abc/home/ads/
mv `ls -ltr |tail -1` /abc/home/asd451/Output
答案 0 :(得分:2)
它无效,因为您使用ls -l
并且输出比简单文件名更复杂。
此外,不需要-r
,只需使用第一行而不是最后一行:
mv "$(ls -t | head -1)" /abc/home/asd451/Output
我没有找到任何好的方法来仅列出ls
的文件,所以如果您只想移动文件,这里有一个解决方案:
mv "$(ls -lt | grep '^-' | head -1 | awk '{ print $9 }')" /abc/home/asd451/Output
我使用grep仅获取文件(ls -l
的输出以文件-rwxr-wr-w
和目录drwxr-xr-w
开头,并使用awk
打印文件名
添加路径(我警告你它变脏了):
source_path=/abc/home/ads/
mv "$(ls -lt $source_path | grep '^-' | head -1 | awk '{ print "'$source_path/'"$9 }')" /abc/home/asd451/Output
答案 1 :(得分:0)
find -maxdepth 1 -printf '%T@\t%f\n' -type f | \
sort -rn | sed 's|^[^\t]*\t||; q' | \
xargs -n 1 -d '\n' mv -t /target/dir/
或者
...
xargs -n 1 -d '\n' -I{} mv -- '{}' /abc/home/asd451/Output