目前正在考虑输出正在使用的文件的方法,但我真正需要的是在特定位置获取当前不使用的文件夹/文件,并将输出用作环境变量。示例:USED_FILES=$(lsof+D/home/Folders|grep-e Gradle)回应$USED_FILES试图找到并思考如何获得不在使用的文件夹/文件。也许是一次While循环?
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(文件未被使用),则打印该文件
1条答案
按热度按时间fslejnso1#
尝试以下操作:
处理/home/文件夹中的每个文件,然后将该文件读取为变量“FILE”。使用带有错误抑制的lsof(-w)使用awk检查最后一个字段($nf)是否等于文件(awk中的变量FIL)。如果设置为1,则将Found变量设置为1。在awk脚本的末尾,如果Found设置为1,则以状态代码0退出,否则以1退出。
如果通过管道传输到awk的lsof的退出代码为1(文件未被使用),则打印该文件