변수 또는 파일에 대한 출력 사용(-exec 및 shred로 찾기)

변수 또는 파일에 대한 출력 사용(-exec 및 shred로 찾기)

그것을 부수기 위해 실행하는 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

shredstdout이 아닌 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-shgoto $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및의 연속된 출력이 잘못된 순서로 섞일 수 있습니다.)findshred

관련 정보