Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今いるディレクトリを消すとどうなる

 今いるディレクトリを消すとどうなる

「新しいLinuxの教科書」を読む会 オンライン #11 での発表資料です。
https://linuxbook.connpass.com/event/204816/

246b59bbea7c40cbbbcbf94bfc6720ff?s=128

Osumi, Yusuke

March 13, 2021
Tweet

More Decks by Osumi, Yusuke

Other Decks in Technology

Transcript

  1. 今いるディレクトリを 消すとどうなる @ozuma5119 1 「新しいLinuxの教科書」を読む会 オンライン #11 2021/03/13

  2. Windowsの場合 - できない 2

  3. Linuxの場合 - できる 3 $ ls book1.csv secret.txt $ pwd

    /home/book/Documents $ rm -v -r /home/book/Documents `/home/book/Documents/secret.txt' を削除しました `/home/book/Documents/book1.csv' を削除しました ディレクトリを削除しました: `/home/book/Documents' $ pwd /home/book/Documents
  4. 4 "Documents" フォルダは消えたのにいる! *いしのなかにいる*

  5. いるけど何もできません 5 [book@cent7 Documents]$ pwd /home/book/Documents [book@cent7 Documents]$ rm -v

    -rf /home/book/Documents ディレクトリを削除しました: `/home/book/Documents' [book@cent7 Documents]$ [book@cent7 Documents]$ echo "AAA" > a.txt bash: a.txt: そのようなファイルやディレクトリはありません [book@cent7 Documents]$ ls -al 合計 0 [book@cent7 Documents]$ . と .. も無いことに注意
  6. Linuxでファイル・ディレクトリを削除するとは 6 /home/book iノード番号 ファイル名 82490 Documents 33795498 Desktop 51812769

    Downloads Documents Desktop Downloads
  7. Linuxでファイル・ディレクトリを削除するとは 7 /home/book iノード番号 ファイル名 82490 Documents 33795498 Desktop 51812769

    Downloads Documents Desktop Downloads ディレクトリエントリ(台帳)から消すだけ そのため「迷子」になる
  8. 応用編 - 消しちまった! でも別のアプリで開いてる シナリオ 1. Documents/secrets.txt をlessで見ていた 2. [Documents]

    フォルダごと消してしまった $ rm -rf Documents 3. lessがopenしているFD(File Discriptor)を/procから探してコピーする 4. 復旧! 参考: https://mag.osdn.jp/06/11/23/0451251 8
  9. 9 1. ~/Documents/secrets.txt を 開いている状態で…… 2. Documentsフォルダごと消します

  10. 10 1. lessコマンドのプロセスIDを調べて 2. lsofコマンドでファイルを開いている FD(File Descriptor)を探します

  11. 11 1. プロセスID=11523, FD=4 をコピーします 2. ファイル復旧できた!

  12. 12 lessコマンドを終了させてしまうと、ファイルは 完全に見えなくなります (ただし直後は台帳から消えただけでディスク上に 残っているので、復旧できる可能性は高いです)