이 .hidden
파일에는 어떤 옵션이 있습니까? 폴더에서 특정 파일 형식을 숨기고 싶지만 을 넣으면 *.out
으로 끝나는 모든 파일이 숨겨질 것이라고 생각했지만 .out
작동하지 않습니다. :(
노틸러스를 사용하고 있습니다.
업데이트: 이 옵션이 없으면 디렉토리에서 실행될 때 일치하는 끝이 있는 모든 파일을 찾아 file 에 쓰는 bash 쉘을 만드는 것이 가능할 것이라고 생각했습니다 .hidden
. 저는 명령줄 경험이 없지만 시도해 보겠습니다 :).
답변1
재미삼아 John의 답변을 조금 개선하겠습니다. 이 명령은 전체 파일을 덮어쓰지 않고 대신 파일 이름이 이미 파일에 있는지 확인 .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의 답변을 바탕으로 필요한 작업을 수행하는 쉘 명령을 만들었습니다.
for i in *.out; do echo "$i"; done > .hidden
이것은 작동하는 것 같습니다. 선택한 디렉토리의 모든 하위 디렉토리에 쉘 명령을 적용하는 것이 가능합니까? (실제로 이것은 또 다른 질문일 수 있습니다)
답변3
새로운 답변: 제가 생각했던 것과는 다른 의미로 말씀하신 것 같습니다. Nautilus File Manager가 기본적으로 숨기려는 모든 파일을 나열하는 텍스트 파일을 생성하면 .hidden
다음 명령을 사용할 수 있습니다(@Jóhann의 답변에서):
for i in *.out; do echo "$i"; done > .hidden
.out
숨기려는 파일 확장자로 바꾸세요 .
이전 답변:
관련된 모든 파일이 동일한 확장자를 공유하고 다른 파일이 동일한 확장자를 공유하지 않는 경우 간단한 셸 명령을 사용하면 됩니다. 예를 들어, *.out
파일의 경우:
for i in ./*.out; do mv "$i" ./."${i#./}"; done
이 명령은 현재 디렉터리에서 *.out과 일치하는 모든 파일을 다음 디렉터리로 이동합니다..<name>.out