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

coreutils/rm Dive Deep

Avatar for tanuki tanuki
February 17, 2023

coreutils/rm Dive Deep

Avatar for tanuki

tanuki

February 17, 2023
Tweet

More Decks by tanuki

Other Decks in Programming

Transcript

  1. ͦ΋ͦ΋Linuxͱ͸ʁ • ਖ਼֬ʹ͸Χʔωϧ͚ͩΛࢦࣔ͢͠ • LinuxΧʔωϧͱGNUιϑτ΢ΣΞ܈Λ߹ΘͤͯGNU/Linux • glibcʢGNU C Libraryʣ •

    gccʢGNU Compiler Collectionʣ • GNU CoreutilsʢGNU Core Utilitiesʣ • ͜ΕΒʹै͑͹ɺLinuxίϚϯυͳΜͯଘࡏ͠ͳ͍͚Ͳ... 14 $PSFVUJMTʹ͍ͭͯ
  2. લఏ • GNU Coreutils 8.22 • glibc 2.26 • kernel

    5.10.x • Amazon Linux 2 x86_64 20 SNͷجຊΛ͓͞Β͍
  3. ϓϩϯϓτ͕ग़Δ৚݅ɺͳʔΜͩʁ • ॳճ͚ͩ • -I, --interactive=once ͕༩͑ΒΕɺ3ͭΑΓଟ͍ϑΝΠϧΛ࡟আ͢Δͱ͖ • -r, -R,

    --recursive ͕༩͑ΒΕͨͱ͖ • ຖճ • ॻ͖ࠐΈෆՄೳɺඪ४ೖྗ͕୺຤ɺ-f, --force ͕༩͑ΒΕ͍ͯͳ͍ͱ͖ • -i, --interactive=always ͕༩͑ΒΕͨͱ͖ 21 SNͷجຊΛ͓͞Β͍
  4. ͦͷଞͷΦϓγϣϯ • ۭͷσΟϨΫτϦΛ࡟আ͢Δʹ͸ʁ • rm -t <ۭͷσΟϨΫτϦ> • -iͱ-fΛಉ࣌ʹࢦఆͨ͠Βʁ •

    ޙऀͷΦϓγϣϯͰ্ॻ͖͞ΕΔ • ϑΝΠϧ໊ʹ - ͕ண͍͍ͯΔ৔߹͸ʁ • rm -- -foo ΋͘͠͸ɺrm ./-foo 22 SNͷجຊΛ͓͞Β͍
  5. ४උ • GNU Coreutils • git clone git://git.sv.gnu.org/coreutils • linux

    • git clone [email protected]:torvalds/linux.git • glibc • git clone https://sourceware.org/git/glibc.git 24 ίʔυϦʔσΟϯά
  6. ·ͣ͸straceͯ͠ΈΔ • strace ʻ࣮ߦίϚϯυʼ Έ͍ͨʹ࢖͏ • ྫɿstrace rm test.txt •

    ҎԼͷΑ͏ͳ͜ͱ͕֬ೝͰ͖Δ • ϓϩάϥϜ͕ൃߦͨ͠γεςϜίʔϧ • ݺͼग़͞ΕͨΧʔωϧػೳͷ࣮ߦʹ͔͔ͬͨ࣌ؒ • ଟ͘ར༻͞ΕͨγεςϜίʔϧ͸ͳʹ͔ 25 ίʔυϦʔσΟϯά
  7. 26