我正在尝试创建两个非常相似的脚本。一个脚本是列出目录中的所有文件,然后列出子目录,子目录的子目录等等,依此类推,直到没有更多目录,然后将信息输出到日志文件,其路径名从我开始的目录开始。另一个脚本与上面的脚本完全相同,但是我需要使用脚本来列出这些目录和子目录中的所有文件,而不是目录。我还需要从我开始的目录开始的路径名。但是,它们都需要在单独的日志文件中输出。
我需要在与Android兼容的sed命令或bash命令中执行此操作。
/ system /表示我要从其开始的目录
这仅输出/ system /中的目录,并成功制作一个日志文件:
LOG_FILE=/data/local/log.log;
for d in /system/*; do [[ -f "$d" ]] || echo "$d" "$d"| tee -a $LOG_FILE; done
这仅输出/ system /中的文件,并成功制作一个日志文件:
LOG_FILE=/data/local/log.log;
for f in /system/*; do [[ -d "$f" ]] || echo "$f" "$f"| tee -a $LOG_FILE; done
不幸的是,我一直没有在这里或其他任何地方进行搜索以找到正确执行操作的方法。几乎可以肯定,我无法在正在使用的Android系统中递归执行此操作。我认为我需要做的只是以有限的方式进行sed和bash操作。
任何帮助,将不胜感激。
编辑:所以我忘了补充,我需要以以下方式在文件中的每一行的开头和结尾添加行,但是需要上述更改。
LOG_FILE=/local/log.log;
tmp1="cp"
tmp2=tmp
tmp3=test
for f in /system/*; do [[ -d "$f" ]] || echo $tmp1 $tmp2/$tmp3"$f" "$f"| tee -a $LOG_FILE; done
因此它将以/system/file.txt作为我需要复制的路径(用“ $ f”表示)输出:
cp tmp/test/system/file.txt system/file.txt
cp tmp/test/system/file2.txt system/file2.txt
要在行的开头和结尾添加文本,请在查找中使用xargs
find /system/ -type f|xargs -i echo "BEGIN" {} "END" > $LOG_FILE
更新:
#¡/bin/bash
LOG_FILE="log"
tmp1="cp"
tmp2=tmp
tmp3=test
for i in `find /system/ -type f`;
do
[[ -d "$i" ]] || echo $tmp1 $tmp2/$tmp3"$i" "$i"| tee -a $LOG_FILE;
done
输出为
cp tmp/test/dir/file dir/file
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句