kutlus Asked: 2019-03-26 07:22:45 +0800 CST2019-03-26 07:22:45 +0800 CST 2019-03-26 07:22:45 +0800 CST 是否有任何命令行可以在 Linux 上查看丢失的文件?[复制] 772 是否有任何命令行可以查看 Linux 上丢失的文件。我在 MobaXterm 的终端文件夹中有一个从 000 到 073 的文件列表。但正如您在下图中看到的那样,缺少 070。谢谢 linux 4 个回答 Voted Luciano Andress Martini 2019-03-26T07:34:20+08:002019-03-26T07:34:20+08:00 cd yourfolder for file in {001..099}; do [ -e "$file.mat" ] && echo $file.mat || echo "Warning: $file.mat is missing" done 将 99 更改为您期望的文件数.... Best Answer ctx 2019-03-26T07:34:29+08:002019-03-26T07:34:29+08:00 此命令检查文件是否存在: test -f file [[ -f file ]] 您可以根据以下内容的返回值回显消息: test -f file || echo file does not exist 要检查许多文件,您可以使用for循环: for f in {000..073}.mat ; do [[ -f $f ]] || echo $f does not exist done 或作为单线: for f in {000..073}.mat ; do [[ -f $f ]] || echo $f is missing; done Prvt_Yadav 2019-03-26T07:33:54+08:002019-03-26T07:33:54+08:00 如果您知道文件的上限,那么: for i in {000..074} do if [ -f "$i.mat" ] then echo "$i.mat exists" else echo "$i.mat doesn't exists" fi done echo您可以根据自己的意愿修改命令。 Stéphane Chazelas 2019-03-26T07:34:03+08:002019-03-26T07:34:03+08:00 使用zsh外壳: files=(<->.mat) expected=({000..073}.mat) missing=(${expected:|files}) printf ' - %s\n' $missing 对于像这样具有简单名称的文件,您也可以使用comm(这里使用 ksh、zsh 或 bash shell): comm -13 <(ls) <(seq -f '%03d.mat' 0 73)
将 99 更改为您期望的文件数....
此命令检查文件是否存在:
您可以根据以下内容的返回值回显消息:
要检查许多文件,您可以使用
for
循环:或作为单线:
如果您知道文件的上限,那么:
echo
您可以根据自己的意愿修改命令。使用
zsh
外壳:对于像这样具有简单名称的文件,您也可以使用
comm
(这里使用 ksh、zsh 或 bash shell):