gpt4 book ai didi

linux - 搜索早于特定时间的文件并将其移动到特定文件夹中

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:38 26 4
gpt4 key购买 nike

有人可以帮我修复一个脚本,用于在作为参数给出的特定文件夹中搜索文件,并将它们移动到另一个文件夹中吗?我尝试循环进入 while 循环,但没有成功,而且我不明白我做错了什么。我是 Linux 脚本新手,并试图理解它。

StructuraFoldere=$1
shift
VechimeFis=$2
shift
Dirmutat=$3
shift
cout=1
echo

while [ $# -gt 0 ]
do
if [ -g $# ]
then -ls $#
fi
shift
echo find /"$#" -maxdepth 1 -mtime +"$VechimeFis" -type f -exec mv "{}" "$Dirmutat" \;
shift
cout=$[cout+1]
shift
done

最佳答案

我将回答您问题中最普遍的部分,“我是 Linux 脚本编写的新手,并试图理解它。”我这样做是因为在我看来,你正处于起步阶段;告诉我的主要事情是您正在使用两者$1$2shift

比较这两个脚本:

第一个脚本:

FIRST=$1
shift
SECOND=$2
shift
THIRD=$3
shift

echo $FIRST
echo $SECOND
echo $THIRD

如果我使用 ./scriptname.sh 1 2 3 运行此命令,我会得到输出:

1
3
# a blank line

第二个脚本:

FIRST=$1
SECOND=$2
THIRD=$3

echo $FIRST
echo $SECOND
echo $THIRD

如果我使用 ./scriptname.sh 1 2 3 运行此命令,我会得到输出:

1
2
3

换句话说,shift 不是必需的,而且实际上会产生干扰。当你做这样的事情时,你只需要使用 shift :

FIRST=$1
shift
SECOND=$1
shift
THIRD=$1
shift

...或者更常见的是,在循环内重复读取 $1

这是一个非常非常好的学习 shell 脚本的资源:

http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html

这将从一开始就为您提供帮助,即使在使用 25 年以上的 shell 脚本之后,我仍然发现它是非常有值(value)的资源。

虽然这不能回答您的具体问题,但我认为您需要在实现既定目标的基础知识上打下更坚实的基础。 我强烈地感觉到这将帮助您实现更广泛的目标——学习 shell 脚本。如果您仔细阅读并完成上述 Bash 初学者指南,您很快就会看到一种方法(或几种方法!)来编写您具体询问的文件搜索/移动脚本。

HTH。

关于linux - 搜索早于特定时间的文件并将其移动到特定文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50472295/

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