배시하지만 접근 할 수없는 파일들


0

Ubuntu 12.04 시스템에서 다음과 같은 문제가 발생합니다.

  1. 나는 "우분투"사용자로서 기계에 SSH했습니다.
  2. 달리는 ls -lah /data/* "우분투"사용자 / 그룹이 소유하고 있으며 전체 읽기 / 쓰기 액세스 권한을 가진 수십 개의 비어 있지 않은 파일 (예 : file1.txt, file2.txt 등)을 보여줍니다.
  3. 내가하려고하면 cat /data/file1.txt, bash는 나에게 오류를 준다 "cat : /data/file1.txt : No such file or directory"

요컨대, ls 파일을 나열하고 있지만 다른 모든면에서는 파일이 본질적으로 존재하지 않습니다. 나는 고양이를 키우거나 어떤 식 으로든 그들을 읽을 수 없다. 심지어 모든 파일에 777 권한을 부여해도 아무런 변화가 없습니다. 이것은 정말로 기괴합니다. 무슨 일 이니?


다음의 결과는 무엇입니까? ls -lad /data/file1.txt? ~이다. /data/file1.txt 상징적 인 링크?
Darth Android

어떤 권한이 설정되어 있습니까? /data 폴더 ( ls -lad /data )? 어쩌면 x 소유자는 파일을 나열 할 수는 있지만 액세스 할 수는 없습니다.
NuTTyX

@NuTTy : 그것이 문제라면 파일 크기, 소유권 및 사용 권한을 볼 수 없습니다. ls -l….
G-Man

지능을 모욕 할 위험이 있습니다. 파일을보고 있습니까? /data? 때문에 ls /data/* ( -d 옵션)에 내용 에있는 디렉토리 중 /data. 당신이하고 싶은 일이 /data, 말하기에 충분하다. ls -lh /data (또는 원하는 옵션이 무엇이든지간에, 물론, -a-A 이름이로 시작하는 것들을 포함 할 것이다. . ). ... ... ... ... 시도해보십시오. ls -lb /data 파일 이름에 표시 할 수없는 2 진 문자를 검사합니다.
G-Man

그 결과는 무엇인가? file /data/file1.txt 또는 cd /date file file1.txt
broomdodger

답변:


2

파일 이름에 2 진 문자가있을 수 있습니다.

에 대한 cat /data/file1.txt대신 이름의 일부와 일치시켜 쉘이 나머지 부분을 찾아 낼 수 있도록해라 :

cat /data/*1.txt

아니, 이미 확인 했어. 디렉토리에서 자동 완성을 시도해도 파일을 읽을 수 없기 때문에 아무 것도 반환하지 않습니다.
Cerin

자동 완성 기능은 특정 파일 만 "보게"됩니다. 이 시도: egrep . /data/*
johntellsall

0

파일이 삭제되었지만 여전히 응용 프로그램에서 열려있을 수 있습니다. 파일은 디스크에 존재하지 않지만 응용 프로그램은 여전히 ​​"열어"있기 때문에 커널은 파일 시스템에서 파일을 제거 할 수 없습니다.

다음을 사용하여 파일을 사용하여 프로세스 찾기

sudo lsof | grep data/file1.txt

그런 다음 중요하지 않은 경우 해당 응용 프로그램을 다시 시작하거나 종료하거나 시스템을 재부팅하십시오.


1
사용중인 "응용 프로그램"이 없습니다. 그들은으로 창조되었다 rsync -avz /data ubuntu@remotehost:/data 내 localhost에서 실행하십시오. 그리고 bash는 여전히 수백 메가 바이트 단위의 파일 크기로 나열합니다.
Cerin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.