성가신 ".DS_Store"파일을 삭제하십시오.


13

OS X를 사용하는 경우 Finder를 사용하여 생성 된 악명 높은 숨겨진 ".DS_Store"파일에 익숙 할 수 있습니다.

문제는 전체 파일 시스템을 통과하는 코드를 작성하고 ".DS_Store"라는 파일을 삭제하는 것입니다.

클래식 코드 골프-가장 짧은 코드가 승리합니다.


설명 :

  • 코드는 수퍼 유저가 필요한 .DS_Store 파일을 삭제할 필요 가 없습니다 . 그러한 파일이 존재하지 않는다고 가정하십시오.

  • 코드는 관련 .DS_Store 파일 삭제 해야 합니다 .


3
코드에서 수퍼 유저가 필요한 .DS_Store 파일을 삭제해야합니까 (sudo를 호출해야합니까)?
Kaya

1
@ 카야 좋은 질문 : 아니오 그런 파일을 삭제할 필요가 없습니다.
arshajii

27
이 이름이없는 파일을 삭제 괜찮 .DS_Store도를 ?
Joey Adams 1

1
@JohannesKuhn 최신 편집 내용은 자명 한 것으로 생각됩니다. 완전성을 위해 추가했습니다. 그럼에도 불구하고 나는 영리한 답변에 감사합니다!
arshajii

1
@Joey — 질문을 군용 도메인 (예 : 흠… 미국 군용)으로 무작위로 옮깁니다 ^^. 그리고 "files".DS_Store ""를 "person to kill"로 바꿉니다. 그리고 "단지"라는 요구 사항이 분명하지 않다는 것을 알 수 있습니다.
Nicolas Barbulesco 13:30에

답변:


14

zsh, 19

rm -f /**/.DS_Store

(외부해도 괜찮다면 16을 만드십시오 -f.)


12

배쉬 *, 40 30

find / -name .DS_Store -delete

find / -name .DS_Store -exec rm -f {} \;

이것은 그것을 처리해야합니다 (골프가 높지 않고 멘션이 너무 느리지 않습니다). Bash는 "가져 오기 시스템"넌센스를 처리 할 필요가 없기 때문에 옳은 것 같습니다. 모든 환경에서 실행을 원하면 bash줄 바꿈 에 4 자 , 1을 추가하십시오 .

* 내가 생각하는 껍질은 다시 본 껍질이 유일한 것이라고 가정하면 습관에서 벗어날 수 없습니다.


1
Bash는 바로 그 도구입니다.
Johannes Kuhn

1
findOS X에는 어떤 종류가 있습니까? GNU를 사용하면 find훨씬 짧습니다 find / -name .DS_Store -delete.
manatwork

1
에 따라 "인수 목록이 너무 깁니다"오류 및 요구 중 bash4 이상 새로운 globstar쉘 옵션 설정, 또는 zsh: rm /**/.DS_Store.
manatwork

1
bash 특정 작업을 수행하지 않으므로 쉬울 수도 있습니다.
피터 테일러

10
.DS_Store중요한 것들이있는 디렉토리를 제거했습니다 .
Konrad Borowski 2016 년

9

루비 : 38 33 자

File.delete *Dir['/**/.DS_Store']

2
Dir[...]에 대한 단축키입니다 Dir.glob(...). 이렇게하면 5 자를 절약 할 수 있습니다.
Patrick Oscity

3
아아! 더 짧은 방법이 있다는 것을 알았지 만에서 검색했습니다 Kernel. @padde 감사합니다.
manatwork

2

물고기, 16

rm /**/.DS_Store

( 읽기 전용 디렉토리에서 -f삭제해야하는 경우 19로 설정하십시오 .DS_Store.)


0

쉘, 25

locate .DS_Store|xargs rm

작업중인 locate데이터베이스가 필요 합니다.


3
공백 문자가없는 경로도 필요합니다.
manatwork


0

CMD, 17

del/s "/.DS_Store

꽤 직설적 인.

/s하위 디렉토리 내에서도 검색해야합니다. 그렇지 않으면 (잘못된) 인수로 해석되는 char
"을 이스케이프하는 데 사용됩니다 /.


-1

찾기, 38

이전의 find해결책은 잘못되었습니다 : .DS_Store디렉토리, 링크, 특수 파일 등을 포함하여 명명 된 모든 것을 삭제하는 것을 의미 합니다.

그러나:

find / -type f -name .DS_Store -delete

를 사용하는 최소한의 솔루션 find입니다.

면책 조항 : 실제 * nix 상자 에서이 솔루션을 실제로 사용하지 말 것을 강력히 권고합니다. 재귀 적으로 무언가를 삭제하려고 시도 /하는 것은 매우 나쁜 생각입니다. 경고를받습니다.

편집 :

파일, 디렉토리, 링크 (하드 및 기호), 명명 된 파이프, 소켓, 특수 파일, 의사 파일 시스템의 차이점이 명확하지 않은 경우 Google에 알려지지 않은 용어 중 일부를 제안하는 것이 좋습니다. 놀랍고 현명하며 오류가 적습니다.

EDIT2 : 더욱 관련성 : OP는 "이 코드는 관련 .DS_Store 파일 만 삭제해야합니다. : 누군가 지루한 요구 사항 을 읽으려면 이 파일보다 많은 것을 제거하는 모든 솔루션은 재미 있고 똑똑합니다. 그러나 틀렸다 .


이전 find솔루션이 맞습니다. ".DS_Store"라는 파일을 삭제하십시오. 따라서 파일 유형에 따라 특별한 요구 사항이 없습니다.
manatwork 2016 년

@ manatwork : 넌센스 : 파일은 디렉토리와 다릅니다. 꼬인 선을 따라 가장 좋은 해결책은 여전히 ​​rm -rf /입니다.
DavAlPi

2
오, 당신은 구글을하지 않았다 : en.wikipedia.org/wiki/Everything_is_a_file
Johannes Kuhn

3
Ohh, 그리고 다른 것 : 코드 골프에서 목표는 가장 짧은 솔루션을 얻는 것입니다. 따라서 요구 사항을 선호하여 적은 수의 문자를 절약 할 수 있다면 그렇게하십시오. 유닉스처럼 모든 것을 파일로 취급하여 8 문자를 저장할 수 있습니다. 추신 : 놀람은 어디에 있었습니까? 어떤 사람들은 기본 UNIX 프린시 페를 거부한다는 사실?
Johannes Kuhn

1
이제 나는 더 나은 대답을 얻었습니다 . 여기 모든 사람들이 이해할 수있는 것입니다.
DavAlPi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.