如何将 'ls' 输出文件移动到 unix 中的文件夹

Bob*_*bby 2 unix shell

我必须将最新修改的文​​件从一个 unix 脚本文件中的一个文件夹移动到另一个文件夹。

我正在使用

cd /abc/home/ads/
mv `ls -ltr |tail -1` /abc/home/asd451/Output
Run Code Online (Sandbox Code Playgroud)

jul*_*enc 5

它不起作用,因为您正在使用ls -l并且输出比简单的文件名更复杂。

另外,不需要-r,只需使用第一行而不是最后一行:

mv "$(ls -t | head -1)" /abc/home/asd451/Output
Run Code Online (Sandbox Code Playgroud)

我没有找到任何只列出带有 的文件的ls方法,所以如果您只想移动文件,这里有一个解决方案:

mv "$(ls -lt | grep '^-' | head -1 | awk '{ print $9 }')" /abc/home/asd451/Output
Run Code Online (Sandbox Code Playgroud)

我使用 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
Run Code Online (Sandbox Code Playgroud)