スベリミナル効果

技術的なことを書こうと思ってたけど何でも書くことにします


通常用

ふざけ用
何でもコメントください。誤り指摘コメントなどには「コメン(ゴメン)」ト誤ります(1スベリ)
ダジャレ好きの方はこちらにどうぞ(更新してないけど)→スベリブログ2.0

センター試験からの1000tar試験

学生の皆様、そして各会場の関係者の皆様も、センター試験お疲れ様でした。私にとっては遥か昔の出来事なので、どのくらい大変だったかもはや思い出せなくなっております。そんな他人事としてセンター試験を眺めている中で、『1000tar試験』という糞なダジャレを思いついてしまいました。せっかくなので、センター試験後の息抜きに1000tar試験はいかがでしょうか。(1スベリ)

1000tar試験 問題

GitHub - hijili/1000tar_test: joke of National Center Test

問題を作って確認するスクリプトは一応ここにあります。動くかわかりませんが。

問1

0001.tar ... 1000.tar がある。解凍(解答)せよ。(2スベリ)
なお、tarには同名のtxtファイルが1つだけ含まれていることが分かっている。
$ ls -1 q1
0001.tar
0002.tar
  : 
1000.tar

問2

0001.tar ... 1000.tar がある。解凍せよ。同時に、tarでないファイルを特定し削除せよ。
なお、tarには同名のtxtファイルが1つだけ含まれていることが分かっている。

問3

0001.tar ... 1000.tar がある。解凍せよ。
ただし、tarファイルの中身は不明であることに注意せよ。

解答

問1

まあ、ただのfor文の使い方だけですね。1tarが1txtだと書いてあるのでこんなもんでよいでしょう。

for i in {0001..1000}; do
    tar xf $i.tar
done

問2

内容としては大して変わってませんが。

for i in {0001..1000}; do
    tar xf $i.tar &>/dev/null || echo "$i.tar is illegal" && rm $i.tar
done

tarかどうかチェックする方法もありますが、エラーが返ったら消す、だけでもこの場合いいでしょう。別のエラーが混ざるかもしれませんけど…

問3

問1の段階でやっとけよという話ですが…

for i in {0001..1000}; do
    mkdir -p ${i}dir
    tar xfk $i.tar -C ./${i}dir
done

得体の知れないtarファイルを解凍する場合は、同名ファイルを上書きしない -k オプションをつけたり、解凍先ディレクトリを分けるべきです。このtarの中には、重複して上書きされてしまうファイルがいくつも混ざっていました。

終わりですがなにか?

Q1. この内容なら1000個もtar要らなくね?

要らないけどそれじゃダジャレにならんやろがい!!

Q2. 内容薄くない?

そもそも『1000tar試験』ってダジャレがちょっと浮かんだだけでここまでやったんだから十分やろがいボケェ!!

Q3. 間違ってない?

細かいことは気にせず自分のできることをやれ!!

Q4. ひょっとしてゾンビランドサガの巽さん意識してない?

ちょうど観たばかりで影響受けまくってます。

以上です

1000tar(センター)と解凍(解答)がかかってて面白いと思っただけなんです。 それにしても問題作るって大変ですね。その苦労を思えばニンジンに羽を生やすくらいの自由はいいのではないかと感じました。

あ、あとWindowsのキミ!シェルスクリプトとか関係ないなんて思わないで!Windows Subsystem for Linuxでも試せっから(10なら)!ぜひやってみてくれよな!zipとかでも同じことできるからな!!