.hidden 文件的选项?

.hidden 文件的选项?

.hidden文件存在哪些选项?我想在文件夹中隐藏某些文件类型,但简单地放置*.out,我认为这会隐藏所有以 结尾的文件.out,但不起作用。 :(

我正在使用鹦鹉螺。

更新:我想如果这个选项不存在,可以创建一个bash shell,当在目录中执行时,找到所有具有匹配结尾的文件并将它们写入文件.hidden。我没有任何命令行经验,但我会尝试一下:)。

答案1

只是为了好玩,我会稍微改进一下约翰的答案。此命令不会覆盖整个文件,而是检查文件名是否已在文件中.hidden,如果没有则将其追加。

for i in *.out; do grep -qxF "$i" tout || echo $i; done

如果你想要一个更通用的脚本,这应该可以:

#!/bin/bash -e

if [ $# -gt 3 ]; then
        echo "Usage: $0 [directory [extension [listfile]]]"
        echo 'Defaults to "." ".out" ".hidden"'
        exit 1
fi

# Apply defaults.
dir=${1:-.}
ext=${2:-.out}
listf=${3:-.hidden}

# Construct the list file.
list="$dir/$listf"

# Make sure the list file exists or the first `grep` will print an error.
[ -f "$list" ] || touch "$list"

# Glob all the files
for filename in "$dir"/*"$ext"; do
        # Check whether the list contains the file name
        if ! grep -qxF "$filename" "$list"; then
                # If not, add it.
                echo "$filename" >>"$list"
        fi
done

答案2

根据 Amazed 的回答,我创建了一个 shell 命令来执行我需要它执行的操作。

for i in *.out; do echo "$i"; done > .hidden

这似乎可行,是否可以将 shell 命令应用于所选目录的所有子目录(实际上,这可能是另一个问题)

答案3

新答案:看来你的意思与我想象的不同。您创建一个文字.hidden文件,列出您希望 Nautilus 文件管理器默认隐藏的所有文件,您可以使用此命令(来自 @Jóhann 的答案):

for i in *.out; do echo "$i"; done > .hidden

替换.out为您要隐藏的文件扩展名。

旧答案:

如果所有相关文件共享相同的扩展名,并且没有其他文件共享相同的扩展名,那么一个简单的 shell 命令就可以解决问题。例如,对于*.out文件:

for i in ./*.out; do mv "$i" ./."${i#./}"; done

该命令会将当前目录中所有匹配 *.out 的文件移动到.<name>.out

相关内容