그것을 부수기 위해 실행하는 find 명령이 있는데 그것은 훌륭하게 작동합니다. 그러나 그 출력을 캡처하여 변수나 파일에 전달해야 합니다. 다음 명령을 여러 번 반복했지만 제대로 작동하지 않는 것 같습니다. 나는 또한 for 루프를 시도했습니다. 스매싱 프로세스를 거치면 항상 터미널에 표시되지만 파일이나 변수에 쓰지는 않습니다. 나는 변수를 선호하지만 이 시점에서는 무엇이든 사용할 것입니다. 아래의 예를 참조하십시오.
원래 찾기 명령:
find /burncd/working -type f -exec shred -v -n7 -z --remove {} \;
(StackExchange에서) 파일로 전달된 최근 시도된 명령:
find /burncd/working/* -type f -exec bash -c 'shred -v -n7 -z --remove "$1" /tmp/find.out' $0 {} \;
당신이 제공할 수 있는 어떤 도움이라도 감사하겠습니다.
답변1
shred
stdout이 아닌 stderr로 진행 상태를 출력하는 것 같으니 해당 출력을 사용 2>
하거나 2>>
리디렉션해야 합니다.
다음과 같은 것은 찾기 및 파쇄에서 stderr를 리디렉션합니다.
find . -type f -exec shred -n1 -v {} + 2> /tmp/shred.out
이는 다음 stderr만 리디렉션합니다 shred
.
> ../shred.out
find . -type f -exec sh -c 'shred -n1 -v "$@" 2>> /tmp/shred.out' find-sh {} +
(find로 시작되는 쉘은 find-sh
파일 이름을 find-sh
goto $0
, filenameto $1
, $2
...라는 인수로 취하며 모두 "$@"
다른 단어로 확장됩니다. goto에 대한 문자열은 $0
임의적일 수 있지만 특정 설명을 갖는 것이 도움이 됩니다(왜냐하면 오류 메시지에 사용됨)
비슷한 작업을 수행하여 find 및 shred 출력을 파일과 터미널 모두에 보낼 수도 있습니다.
find . -type f -exec shred -n1 -v {} + 2>&1 | tee /tmp/shred.out
(마찬가지로 through의 출력 find .. -exec sh -c 'shred ... 2>&1 | tee /tmp/shred.out' find-sh {} +
만 shred
넣어야 합니다. 다만 이렇게 하면 tee
및의 연속된 출력이 잘못된 순서로 섞일 수 있습니다.)find
shred