라는 파일을 만들고 싶었습니다 test
. 실수로 나는 mkdir test
대신 실행 합니다 touch test
.
test
파일 이름 으로 디렉토리 를 변환 할 수 test
있습니까?
test
이름이 같은 디렉토리로 이름이 지정된 파일을 변환하는 것은 어떻습니까?
라는 파일을 만들고 싶었습니다 test
. 실수로 나는 mkdir test
대신 실행 합니다 touch test
.
test
파일 이름 으로 디렉토리 를 변환 할 수 test
있습니까?
test
이름이 같은 디렉토리로 이름이 지정된 파일을 변환하는 것은 어떻습니까?
답변:
내가 만지는 유닉스 나 리눅스에서는 불가능하다.
일부 오래된 유닉스에서 디렉토리는 파일이지만 특별히 표시되었지만 여전히 파일입니다. cat
예를 들어 SunOS에서 디렉토리를 읽을 수있었습니다 . 많은 최신 파일 시스템에는 B + 트리 또는 다른 온 디스크 데이터 구조와 같은 디렉토리가있을 수 있습니다. 따라서 파일을 디렉토리로 또는 그 반대로 전환하려면 항상 동일한 이름을 가진 삭제 및 재 작성이 필요합니다.
아무런 명령도 없기 때문에 그러한 명령은 없습니다. 귀하의 질문은 상자를 평평한 사각형으로 변환하는 방법을 묻는 것과 같습니다. 상자 (디렉토리)의 내용으로 무엇을 하시겠습니까? 사각형이 원래 상자와 어떻게 일치합니까?
파일과 디렉토리는 완전히 다른 기능을합니다. 디렉토리 는 실제로 * nix 시스템 의 파일 이지만, 시스템의 내부에만 적용되며 사용자는 볼 수 없습니다. 따라서 파일을 디렉토리로 변환하거나 그 반대로 변환하려면 항상 파일을 삭제하고 디렉토리를 작성해야합니다. 당신이 기대할 수있는 최선은 동일한 inode를 사용하는 것이지만 다시는 중요하지 않습니다.
원하는 기능을 수행하십시오. ( bash
또는 쉘과 같은 다른 Bourne / POSIX)
$ dir2file() { rmdir -- "$1" && touch -- "$1";}
$ mkdir adir
$ dir2file adir
$ ls -l adir
-rw-r--r-- 1 xtian xtian 0 2014-03-04 14:59 adir
$
디렉토리가 아니거나 비어 있지 않은 경우 강제로 rmdir
실패하는 의도적으로 사용 합니다. 성공한 경우에만 실행됩니다 .adir
-f
touch
rmdir
함수 정의를 쉘 사용자 정의 파일 ( .bashrc
for bash
) 에 넣을 수 있습니다 .
--
합니까?
--
마크 그래서 플래그의 말 rmdir
과는 touch
그것이 파일 이름입니다 과거는 시작하더라도 아는 -
.
왜 이것을하고 싶을 지 궁금해하는 사람들에게는이 스레드를 따르십시오.
분명히 펌웨어의 버그가 파일의 디렉토리 항목에서 비트를 뒤집어 OS가 파일 대신 폴더라고 생각하게했습니다.
나는 문제의 링크시스 라우터를 가지고 있지 않지만, 뭔가 빈 폴더에 내 모든 .JPG 파일을 변경했습니다. NTFS 디렉토리 항목이 폴더 대 파일이라고 말하는 비트 (또는 기타)를 뒤집을 방법이 있다면 그것에 대해 알고 싶습니다.
2 년짜리 스레드의 솔루션 중 하나는 파일에 사용되는 폴더가 들어있는 하드 드라이브가 OS / X를 실행하는 Mac에 연결되어 있으면 Mac에서 해당 파일을 다시 파일로보고 Mac의 폴더로 복사 할 수 있습니다. 나는 그것을 시험해 볼 Mac이 없기 때문에 누군가가 비트를 뒤집을 수있는 방법을 알고 있다면 ...
첫째, 게인 터미널에 대한 접근 및 실행 ls -al file
에 파일 이 실제 폴더로 다시 변환 할 파일 인. 파일과 하위 디렉토리가 나열된 경우 "파일"이 이전에 실제 컨텐츠가있는 폴더였으며 계속 진행할 수 있습니다.
실행 :
sudo chmod 700 /
또는
sudo chmod 700 file
시스템을 다시 시작하고 터미널 액세스 권한을 다시 얻은 후 다음을 실행하십시오.
sudo chmod 744 /
또는
sudo chmod 744 file
기억하십시오 : "file"은 ACTUAL 폴더로 다시 변환하려는 파일로 바꿔야합니다.
이것은이 문제를 해결하기위한 임의의 방법 일뿐 아니라 fsck -f
(물론 마운트 해제 된 상태에서) 수정하거나 필요에 따라 새 권한을 수동으로 설정하는 데 사용할 수있는 권한 예외를 만듭니다 .
다시 말하지만 이것은 이전에 비어 있지 않은 폴더였던 파일을 삭제하지 않아도되는 입증 된 방법입니다.
rm -f test && touch test
이것을 제외하면, 나는 정말로 모른다