linux - 对当前目录中的每个文件执行命令

标签 linux bash

如何对当前文件夹中的每个文件/文件夹执行某个命令?

我已经开始将其作为基本脚本,但这似乎只在使用临时文件时有效,而且我不太喜欢这个想法。还有其他办法吗?

FOLDER=".";
DIRS=`ls -1 "$FOLDER">/tmp/DIRS`;

echo >"/tmp/DIRS1";
while read line ; do
    SIZE=`du "$FOLDER$line"`;
    echo $SIZE>>"/tmp/DIRS1";
done < "/tmp/DIRS";

对于任何感兴趣的人,我想制作一个文件夹列表,按大小排序。这是最终结果

FOLDER="$1";
for f in $FOLDER/*; do 
  du -sb "$f";
done | sort -n | sed "s#^[0-9]*##" | sed "s#^[^\./]*##" | xargs -L 1 du -sh | sed "s|$FOLDER||";

这导致 du -sb $FOLDER/* |排序-n | sed "s#^[0-9]*##"| sed "s#^[^\./]*##"| xargs -L 1 杜 -sh | sed "s|$FOLDER||";

最佳答案

也许是 xargs,它为在标准输入上接收到的每一行附加参数重新调用在它之后指定的命令...

ls -1 $FOLDER | xargs du

但是,在这种情况下,为什么不……

du *

...?或者……

for X in *; do
    du $X
done

(就个人而言,我使用 zsh,您可以在其中修改 glob 模式以仅查找常规文件,或仅查找目录,仅查找符号链接(symbolic link)等 - 我很确定 bash 中有类似的东西 - 如果您需要,可以挖掘细节那个)。

我是否遗漏了您的部分要求?

关于linux - 对当前目录中的每个文件执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4142911/

相关文章:

linux - 在 Linux 上使用 glad 的 OpenGL Makefile

linux - 树莓派上的 Archlinux 在 SD 上显示较少的内存

linux - 使用 bash 脚本从文件中读取行

Linux - 恢复文件

mysql - 在哪里可以找到包含所有参数的 mysql 配置文件?

将所有文件和文件夹上传到 FTP 服务器的 PHP 脚本

c - 有没有办法在不使用附加选项的情况下将字符串写入文件末尾?

php - 需要从日志中读取数据...tail、grep 和 inotifywait

bash - 在 systemd 引导期间访问标准输入

git - 有效地将项目添加到 git 索引