그래서 원격 서버에서 ssh를 통해 명령을 실행하고 있으며 이 명령의 모든 출력을 저장해야 하지만 ls: cannot access '/downloads/something.txt': No such file or directory
. 오류를 무시하면서 프로세스를 계속 진행하는 방법이 있습니까? 오류가 발생했다는 알림조차 받지 않아도 문제가 되지 않습니다. 오류가 소수의 파일(총 16TB 중 100MB 미만)에 불과하다는 사실을 알고 있기 때문입니다.
내 명령은 다음과 같습니다.
find /downloads/ -type d ! -writable -print0 | xargs -0 -I{.} find {.} -maxdepth 1 -type f | xargs -I% ls -l % > myfile.txt
이 명령으로 달성하려는 것은 다음과 같습니다.
ls -l <filename>
내가 이것을 하는 이유는 내가 삭제할 수 없는 공유 서버의 모든 파일을 식별하기 위함입니다. 이 목표를 달성하는 더 좋은 방법이 있는지 알려주세요...
정말 감사합니다!
에 입력을 가져오는 데 를 ls: cannot access '/downloads/something.txt': No such file or directory
사용 find
하기 때문에 오류가 발생해서는 안 됩니다 ls
. 당신이 그것을 얻는 이유는 당신의 명령에 일부 -print0
와 -0
옵션이 없기 때문입니다. 즉, 오류가 발생할 경우를 대비 stderr
하여 처음 두 개의 파이프된 명령에서 로 리디렉션해야 합니다. 이러한 변경 후 명령은 다음과 같아야 합니다./dev/null
Permission denied
find /downloads -type d ! -writable -print0 2>/dev/null | xargs -0 -I{.} find {.} -maxdepth 1 -type f -print0 2>/dev/null | xargs -0 -I % ls -l % > myfile.txt
이 명령은 오류를 생성하지 않아야 하지만 16TB를 스캔해야 하는 경우 시간이 걸릴 수 있습니다.
아래 명령을 시도하여 더 빠른지 확인할 수도 있습니다.
find /downloads -type d ! -writable -exec find {} -maxdepth 1 -type f -print0 \; 2>/dev/null | xargs -0 -I % ls -l % > myfile.txt
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다