質問:
誰かがシェルスクリプトでこれを行う最も簡単な方法を示してもらえますか?
ディレクトリ名を含む次のリストがあります。
head -3 list.txt
271_Lsasrv_dll_MS04-011
350_Util_Manager_MS04-019
351_POSIX_MS04-020
list.txtのcd
既存のディレクトリへのエントリごとに:
cd 271_Lsasrv_dll_MS04-011/
プレフィックス番号を取得し、/usr/share/exploitdb/
パスを検索します
find /usr/share/exploitdb/ -name 271.*
/usr/share/exploitdb/platforms/windows/local/271.c
ファイルを既存のディレクトリにコピーします
cp /usr/share/exploitdb/platforms/windows/local/271.c .
親ディレクトリに戻ります。
cd ..
OS情報:
uname -a
(Debian 4.6.4-1kali1)
私は何を試しましたか?
ディレクトリを作成するのは簡単だと思いました...
for fldr in $(cat list.txt); do mkdir -p $fldr; done
...しかし、カットを使用して変数に割り当てるなどの最良の方法がわかりません。経験豊富なLinuxユーザーがこれに取り組むことを学ぶのは素晴らしいことです。
これを試してみてください。改善が必要な場合は、お知らせください。
while read line;
do
mkdir -p "${line}"
prefix=`echo "${line}" | cut -d'_' -f1`
find /usr/share/exploitdb/ -name "${prefix}".* -exec echo {} "${line}/" \;
done < list.txt
コマンド出力に問題がないと思われる場合は、echo
をcp
fromに置き換えfind
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加