나는 objdump 명령을 사용하여 현재 디렉터리에서 .o 확장자를 가진 모든 파일을 분해한 다음 이 명령의 각 .o 파일 출력을 동일한 기본 이름을 가진 .txt 파일에 저장해 보았습니다.
예를 들어, 내 디렉터리에 다음 세 개의 파일이 있다고 가정해 보겠습니다.
myfirstfile.o someotherfile.o finalfile.o
objdump
내 목표는 세 개의 새로운 추가 파일(각 파일 에는 해당 원본 .o 파일의 명령 출력이 포함되어 있음)을 만드는 것입니다 .
myfirstfile.txt someotherfile.txt finalfile.txt
제가 시도한 것은 다음과 같습니다. 그러나 "모호한 리디렉션"이라고만 표시됩니다.
objdump -d --no-show-raw-insn *.o > *.txt
답변1
각 파일에 대해 명령을 실행해야 하므로 루프를 사용하는 것이 가장 좋습니다.
쉘 포함 zsh
:
for f (./*.o) objdump -d --no-show-raw-insn $f > $f:r.txt
bash
쉘 또는 기타 POSIX 쉘(포함 ) 사용 zsh
:
for f in ./*.o; do objdump -d --no-show-raw-insn "$f" > "${f%.o}.txt"; done
*.txt
파일이 없으면 .o
( 에 없음 zsh
)이라는 이름의 빈 파일이 생성됩니다.
답변2
다음과 같이 실행되는 myobjdump.sh라는 파일을 만드는 방법:
./myobjdump.sh `ls *.o`
스크립트는 다음과 같습니다.
#!/bin/bash
for ((i=1; i<=$#; i++)); do
objdump -d --no-show-raw-insn $i > `basename $i .o`.txt
done
편집하다
#!/bin/bash
for n in $@; do
objdump -d --no-show-raw-insn $n > `basename $n .o`.txt
done