
ls
다음은 현재 디렉터리의 파일 목록을 표시하는 명령 입니다 .
rper: ls -l
$commandoutput[0]
file.txt
$commandoutput[0]
를 사용하여 줄을 제거하려고 시도했지만 rm -rf $commandoutput[0]
다음과 같은 오류가 표시됩니다. 어떻게 제거할 수 있나요?
rper: rm -rd $commandoutput[0]
commandoutput: Undefined variable.
답변1
@RomanPerekhrest의 답변 대신 다음과 같이 작동합니다.
rm '$commandoutput[0]'
작은 따옴표는 변수 확장을 방지합니다.
또 다른 방법은 입력을 시작한 rm $
다음 Tab; 쉘은 필요에 따라 문자를 이스케이프하여 파일 이름을 자동 완성합니다.
답변2
이스케이프 $
(및 바람직하게는 [
, ]
) 백슬래시를 사용하여 파일 이름에 로그인합니다 \
.
rm -rf \$commandoutput\[0\]
답변3
다른 사람들이 이 질문에 대답했지만 이를 수행하는 또 다른 방법은 파일의 inode를 찾고 find 및 exec delete를 사용하여 파일을 제거하는 것입니다.
ls -il
샘플 출력:
781956 drwx------ 3 viv viv 4096 2017-07-7 15:05 $commandoutput[0]
첫 번째 열은 inode여야 합니다. 위 예에서는 다음을 실행합니다.
find . -inum 781956 -exec rm -i {} \;
답변4
또 다른 간단한 방법은 와일드카드와 rm -i를 사용하는 것입니다.
rm -i *command*
"command"라는 단어가 포함된 모든 파일 이름에 대해 파일을 제거할지 묻는 메시지가 표시됩니다. 그런 다음 삭제하기 전에 확인할 수 있습니다.