이 질문에는 이미 답변이 있습니다.
제 아내는 여러 가지 파일과 폴더를 가지고 있는데, 그 결과 파일 이름이 정상적인 방법이나 명령 줄을 통해 삭제할 수 없게 만들었습니다 (삭제할 수 없음). 폴더 구조의 깊이로 인해 파일 이름이 너무 길다고 생각합니다. 누구든지 이와 같은 파일을 정리하는 데 유용한 유틸리티를 알고 있습니까?
CTRL
+DELETE
가 가장 쉬운 방법이라고 생각합니다.
이 질문에는 이미 답변이 있습니다.
제 아내는 여러 가지 파일과 폴더를 가지고 있는데, 그 결과 파일 이름이 정상적인 방법이나 명령 줄을 통해 삭제할 수 없게 만들었습니다 (삭제할 수 없음). 폴더 구조의 깊이로 인해 파일 이름이 너무 길다고 생각합니다. 누구든지 이와 같은 파일을 정리하는 데 유용한 유틸리티를 알고 있습니까?
CTRL
+DELETE
가 가장 쉬운 방법이라고 생각합니다.
답변:
디렉토리를 완전히 삭제하고 긴 경로를 포함하고 싶을 때 robocopy
매우 잘 작동합니다.
mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete
이것은 robocopy가 내부적 으로 파일 경로 의 \\?\
접두어 와 함께 유니 코드 인식 버전의 Win32 함수를 사용 하기 때문에 작동 합니다 . 이러한 함수는 259 대신 2¹⁶-1 (32,767) 자로 제한됩니다.
모든 파일을 제거하려면이 프로세스를 두 번 이상 수행해야 할 수도 있습니다.
명령 프롬프트에서 :
dir /X
파일 / 폴더가 짧은 이름 형식으로 나열됩니다. 그런 다음 작성된 짧은 이름을 사용하여 파일을 삭제하십시오.
del LONGF~1.txt
dir
나 cd ..
.
dir
사용할 수없는 경우 pushd
. 그것은 나를 위해 일했다.
Progressivley는 진행중인 각 상위 폴더의 이름을 "1"로 바꾸고 삭제하려고 시도했습니다. 매번 경로를 효과적으로 단축하고 있으며 전체 디렉토리 구조를 삭제할 수있을 때까지 4 ~ 5 개 이상의 디렉토리로 작업 할 필요가 없습니다 (원하는 것일 수도 아닐 수도 있음). 마지막 하위 폴더 에서도이 작업을 수행하고 위아래로 작업 할 수 있습니다.
mv * 1 && cd 1
. 디렉토리에 여러 파일이있을 때 작동하지 않았지만 그 시점에서 rm -rf *
일반적으로 트릭을 수행했습니다.
무언가를 이동, 복사 또는 삭제하기 위해 "전체 경로 및 파일 이름"길이 제한을 극복하는 데 사용한 트릭은 폴더를 가리키는 매핑 된 드라이브 문자를 사용하여 절반 이상 (또는 그 이상으로) '분할' 하는 것입니다. 길을 내려 .
따라서 c : \ some \ long \ path ... \ and \ foo \ bar \ folders \ oldfiles \ myoldfile.txt가 있습니다.
그런 다음 임의의 드라이브 문자를 경로의 어딘가에 맵핑하여 경로의 첫 번째 청크가 몇 자로 만 길어 지도록하십시오. 전제 조건-폴더가 공유 폴더에 있어야합니다 (이 폴더는 서버에 있거나 이미 필요한 경우), 폴더가 아닌 경우 경로의 어딘가에 폴더를 선택하십시오 공유하십시오. 환경 및 편집증 수준에 따라 NTFS 권한이 합리적으로 제한되는 한 모든 사람이 공유에 대한 액세스를 수정할 수 있습니다. 원하는 경우 자신의 계정에만 수정 권한을 허용하십시오.
이제 공유 폴더 또는 그 안의 폴더로 이동하여 공유하거나 다음과 같이 명령 줄을 사용하십시오. "foo"폴더를 "fooshare"로 공유한다고 가정하면 할 수 있습니다
net use x: \\mycomputername\fooshare\bar\folders /persistent:no
X : 드라이브는 이제 해당 공유 내의 "폴더"폴더를 직접 가리 키므로 "x : \ oldfiles \ myoldfile.txt"는 매우 짧습니다.
"/ persistent : no"는 다음에 다시 부팅해도 살아남지 않고 나중에 혼동하지 않음을 의미합니다. 완료되면 폴더를 공유 해제하는 것을 잊지 마십시오.
당신이 바로 매핑 할 수있는 공유 폴더 안에 이미있는 경우에는, 반드시 파일이 들어있는 폴더를 공유 할 필요가 없습니다, 기억 을 공유하고 대상 폴더에 중첩 된 폴더 에 가까운 파일과 그 잘 작동합니다.
사용자가 폴더 구조에서 드라이브를 매우 깊게 매핑 했으므로 거기에서 255자를 사용할 수 있었지만 총 파일 경로 길이를 초과한다는 것을 알았을 때 두 서버간에 대규모 로보 코프를 수행하는이 기술을 사용해야했습니다. 로컬 드라이브 루트에서 액세스 할 때
subst x: C:\Some\first\part\of\the\long\path
subst x: /d
subst
트릭은 한 파일 이름이 아니므로 잘 작동하는 것 같다 그래서 심지어 드라이브의 루트에 이상 260 자 갈 만들기 위해 한.
net use
기본 관리자 공유를 사용할 수 있습니다.net use x: \\localhost\c$\bar\folders /persistent:no
내가 찾은 가장 간단한 방법은 우분투 라이브 CD로 부팅하는 것입니다.
또는 경로의 절반 아래에 공유 폴더를 만든 다음 네트워크 드라이브를 해당 폴더에 매핑하고 매핑 된 폴더에서 삭제를 수행 할 수 있습니다 (같은 컴퓨터에서도).
잘라 내기 / 붙여 넣기 디렉토리의 이름을 바꾸고 삭제하십시오. 여기서 작동합니다.
또는 문제를 겪고 싶지 않다면 명령 프롬프트에서.
node_modules
폴더 였습니다 ) 데스크탑으로 드래그하여 삭제하십시오. 한 번에 몇 개의 폴더를 올리면서 헹구고 반복하십시오. 정말 독한 문제입니다.
아마도 가장 좋은 방법은 아니며 다른 사람들이 생각해내는 것에 관심이 있습니다.
나는 이것을 한 번 가지고 있었고 운없이 몇 가지를 시도했습니다. 좋은 도구를 찾지 않고 Windows 디스크를 다시 시작하고 복구 콘솔로 이동하여 그곳에서 삭제했습니다. 처음으로 정말 잘했습니다!
또한 Google에서 귀하를 대신하여 이것을 발견했습니다 -DelinvFile은 좋아 보이지만 보증 할 수는 없습니다.
편집-경고, 방금 위의 평가판 만 보았습니다-처음 생각했던 것만 큼 좋지 않을 수도 있습니다!