使用loop-LINUX在多个文件夹中查找今天的文件

使用loop-LINUX在多个文件夹中查找今天的文件,linux,bash,unix,find,Linux,Bash,Unix,Find,我在列出所选文件夹中的所有最新文件时遇到问题。情况是,服务器有15个文件夹的名称以“backup”开头。所以我需要列出所有最新的文件,包括它们的名称和大小在这些文件夹中使用循环。因此,我提出了以下代码: #!/bin/sh cd / for i in ls -d backup*; do (`ls -tr | tail -1` $i) ; done 并返回17行错误消息,即: ./show_latest.sh: line 5: tmp: command not found 需要知道这件事的人

我在列出所选文件夹中的所有最新文件时遇到问题。情况是,服务器有15个文件夹的名称以“backup”开头。所以我需要列出所有最新的文件,包括它们的名称和大小在这些文件夹中使用循环。因此,我提出了以下代码:

#!/bin/sh

cd /
for i in ls -d backup*; do (`ls -tr | tail -1` $i) ; done
并返回17行错误消息,即:

./show_latest.sh: line 5: tmp: command not found
需要知道这件事的人的帮助。 TQVM

这里解决的问题是代码:

#!/bin/sh

for i in ls -d backup*; do du -sh $(find /$i -mtime -1 -print ); done

您需要在ls周围使用背景标记:

或者,以下内容将按相反的时间顺序为您提供所有常规文件:

find . -type f -exec echo \'{}\' \;|xargs ls -tr

你为什么需要这个循环?您的第二个变体看起来会更好

du -sh $(find /backup* -mtime -1)

您的代码示例只有四行。错误在第5行。请向我们展示整个脚本show_latest.sh或至少第五行!其余的是注释代码。我没有把它贴在这里。感谢您的回复问题没有解决,并说服自己坚持echo$i;在do和du之间。您的查找解决方案忽略了ls-d backup*的功能,即选择所有以“backup”开头的目录。尝试find/-maxdepth 1-type d-name backup*-print0 | xargs-0-I{}find{}-type f-print0 | xargs-0 ls-tr
du -sh $(find /backup* -mtime -1)