gpt4 book ai didi

linux - 移动未使用的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:00 26 4
gpt4 key购买 nike

知道如何移动未被任何进程使用的文件,从而使用 bash 脚本保留对通配符的支持吗?

基本概念是:

for file in $1..$n-1
if ! fuser file
mv file $n

其中 $1..$n-1 是源文件/目录,$n 是目标路径。

编辑:工作脚本

#!/bin/bash

# Move files which are not open by any process
dest=${@:$#} # get last arg
for file in "${@:1:$#-1}"; do # get all but last args
fuser "$file" >/dev/null 2>&1 && continue
mv "$file" "$dest"
done

谢谢大家的帮助!

编辑2这个脚本有一个错误,某些目录下使用的文件没有被 fuser 检查。稍后会检查这个。

最佳答案

我会将目标目录作为第一个 参数传递。那么你的伪代码就差不多了。

dest=$1
shift
for file; do # shorthand for for file in "$@"; do
fuser "$file" >/dev/null && continue
mv "$file" "$dest"
done

关于linux - 移动未使用的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38175119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com