我在linux机器上有一个目录,里面有数百个文件。它们是相对较短的文件,可以在一两秒内在命令行中轻松显示和读取。有没有办法以自动方式将所有文件打印到命令行,类似于键入“cat *”但每次打印之间有一到两秒的延迟,以便我可以读取每个文件? 我尝试用:
创建一个bash脚本cat $1
sleep 2
然后调用“bash script.sh *”但它只打印其中一个文件然后停止。 有什么建议吗?
答案 0 :(得分:3)
在脚本中使用循环:
#!/usr/bin/env bash
for f
do
cat "$f"
sleep 2
done
答案 1 :(得分:0)
在你的shell提示符中(如果它是sh
- 兼容 - 最有可能):
for i in *; do
cat $i
sleep 2
done
或许?循环遍历所有文件(*
)和cat
。对于这么简单的事情,你真的不需要单独的shell脚本。
答案 2 :(得分:0)
while [ -e "$1" ]
do
cat "$1"
shift 1
sleep 2
done
答案 3 :(得分:0)
for i in $(find /path/to/files -type f -name \*.\*); do
cat $i;
sleep 2;
done
这应该可以正常工作:
find /path/to/files -type f
如果您希望关注某个特定扩展名,请尝试以下内容:
find /path/to/files -type f -name \*.cfg
而不是循环,你可以在find
中完成所有操作find /path/to/files -type f -name \*.cfg -print -exec cat {} \; -exec sleep 2 \;
编辑添加Kevin并不是他的头脑我评论说cat *可能无法在包含大量文件的大文件夹中工作,并且他回复了我在撰写评论时删除的评论:)