Bash脚本输出当前未使用的文件,然后将结果用作变量

euoag5mw  于 2022-10-23  发布在  Linux
关注(0)|答案(1)|浏览(203)

目前正在考虑输出正在使用的文件的方法,但我真正需要的是在特定位置获取当前不使用的文件夹/文件,并将输出用作环境变量。
示例:
USED_FILES=$(lsof+D/home/Folders|grep-e Gradle)回应$USED_FILES
试图找到并思考如何获得不在使用的文件夹/文件。也许是一次While循环?

fslejnso

fslejnso1#

尝试以下操作:

find /home/folder -type f | while read file;
do 
    lsof -w | awk -v fil="$file" 'BEGIN { found=0} { if ($NF==fil) {found=1} } END { if (found==1) { exit 0 } else { exit 1 }}' || echo "$file";
done;

处理/home/文件夹中的每个文件,然后将该文件读取为变量“FILE”。使用带有错误抑制的lsof(-w)使用awk检查最后一个字段($nf)是否等于文件(awk中的变量FIL)。如果设置为1,则将Found变量设置为1。在awk脚本的末尾,如果Found设置为1,则以状态代码0退出,否则以1退出。
如果通过管道传输到awk的lsof的退出代码为1(文件未被使用),则打印该文件

相关问题