파일을 이동할 때 추가 > 문자가 있었고 이제 폴더가 없습니다.

파일을 이동할 때 추가 > 문자가 있었고 이제 폴더가 없습니다.

Linux에서 한 디렉터리에서 다른 디렉터리로 파일을 이동하려고 시도했는데 예기치 않게 추가 > 문자가 생겼습니다.

mv /u01/app/oracle/product/12.1.0.2/db_1/dbs/>test2.dbf /u01/shared_data/oradata/TEST/test.dbf

이제 전체 dbs폴더가 손실되었습니다. 그러나 dbs폴더를 찾으면 /u01/app/oracle/product/12.1.0.2/db_1/dbs거기에 있는 것처럼 보이지만 찾을 수 없거나 찾을 ll수 없습니다 cd.

-bash: cd: /u01/app/oracle/product/12.1.0.2/db_1/dbs: No such file or directory

원본을 원래 위치로 복원하려면 어떻게 해야 합니까?

답변1

이는 >일반적인 사용 사례와 마찬가지로 stdout을 파일로 리디렉션합니다.

printf "%s\n" "hello world" > filename

주변 공간은 >선택 사항이며 마지막에 배치할 필요는 없습니다. 이것도 같은 일을 합니다:

printf "%s\n">filename "hello world" 

따라서 귀하의 mv라인은 더 전통적으로 작성됩니다.

mv /u01/app/oracle/product/12.1.0.2/db_1/dbs/ /u01/shared_data/oradata/TEST/test.dbf > test2.dbf

test.dbf다른 디렉터리에 있는 폴더의 이름을 바꾸고 현재 디렉터리에 mvstdout(아무 것도 없을 것임)을 기록합니다 . test2.dbf실수로 Oracle 데이터 파일을 덮어쓰는 일이 없기를 바랍니다.

추신: 추가 >문제가 일반적인 문제인 경우 bash의 set -o noclobber/ set -C옵션은 최소한 파일 덮어쓰기를 방지하는 데 도움이 될 수 있습니다. Bash 매뉴얼 페이지에서는 이를 다음과 같이 설명합니다.설정된 경우 bash는 및 리디렉션 연산자를 사용하여 >기존 >&파일을 덮어쓰지 않습니다 <>. . >|대신 리디렉션 연산자를 사용하여 >출력 파일을 생성할 때 이는 재정의될 수 있습니다 .

관련 정보