我在脚本中找到了以下代码行。有人可以解释一下这段代码意味着什么吗?
基本上,这一行的目的是找到一组要归档的文件。由于我不熟悉bash脚本,因此我很难理解这行代码。
_filelist=`cd ${_path}; find . -type f -mtime ${ARCHIVE_DELAY} -name "${_filename}" -not -name "${_ignore_filename}" -not -name "${_ignore_filename2}"`
答案 0 :(得分:4)
反引号(`)符号为变量分配命令的输出 您的脚本将分配给$ _filelist:
我认为你可以在没有CD的情况下将其更改为find ${_path} ...
,但请尝试一下。
答案 1 :(得分:4)
让我们分解一下:
cd ${_path}
:更改${_path}
变量
find
用于根据以下标准查找文件:
.
:查看当前目录并通过所有目录进行递归
子目录-type f
:仅查找常规文件(不是目录)-mtime ${ARCHIVE_DELAY}
:查找上次修改过的文件
${ARCHIVE_DELAY}*24
小时前-name "${_filename}"
:查找名称与${_filename}
-not -name "${_ignore_filename}"
:找不到有文件的文件
名称匹配${_ignore_filename}
-not -name "${_ignore_filename2}"
:找不到有文件的文件
名称匹配${_ignore_filename2}
找到的所有文件都存储在名为_filelist
的变量中。
答案 2 :(得分:1)
_filelist=`somecode`
使变量_filelist包含命令somecode的输出。
在这种情况下,Somecode主要是一个find命令,它会递归搜索文件。
find . -type f -mtime ${ARCHIVE_DELAY} -name "${_filename}" -not -name "${_ignore_filename}" -not -name "${_ignore_filename2}"
find .
搜索当前目录,但这只是在更改为_path之前。
-type f
仅搜索普通文件(不是dirs,socket,...)
-mtime
指定文件的修改时间,与$ {ARCHIVE_DELAY}
相同-name explains
本身,必须是“$ {_ filename}”
-not name
我猜也是解释自己的。
所以整个部分将变量filelist设置为文件,由一些标准找到:名称,年龄和类型。