[ ¸®´ª½º fd ] Å°¿öµå °Ë»öÈÄ¿¡ ÀÚµ¿À¸·Î ÇØ´ç µð·ºÅ丮·Î À̵¿

   Á¶È¸ 1305   Ãßõ 0    

❯ fd -t d 1234
Case-1234_xxxxxxxxxx/

❯ fd -t d 1234 -x cd
❯ echo $?
0

❯ fd -t d 1234 -x cd {}
❯ echo $?
0


위와 같이 1234 키워드로 현재 디렉토리에서 1234 문자를 포함하는 디렉토리를 검색 및 이동하려는데,

실제로 이동이 되지 않고, 명령 프럼프트만 나오네요


해당 내역에 대한 조언 부탁 드려 봅니다. 꾸벅




ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
fd°¡ ºÐÀ§±â»ó find¶û ºñ½ÁÇÑ À¯Æ¿ÀÎ °Í °°³×¿ä. find·Î Ä¡ÀÚ¸é:

find ${PWD} -name '*1234*' -type d -exec cd {} \;

¶È°°Áö´Â ¾ÊÁö¸¸ ´ëÃæ ÀÌ·± ¸í·ÉÀÌ µÇ´Â °Í °°½À´Ï´Ù. Unix ½Ã½ºÅÛ ÇÁ·Î±×·¥À» ¾È Çغ¸¼ÌÀ¸¸é Àß ÀÌÇØ°¡ ¾ÈµÇ½Ç ¼öµµ ÀÖ½À´Ï´Ù. ÇöÀç µð·ºÅ丮¶ó´Â °ÍÀº °³º° ÇÁ·Î¼¼½º¸¶´Ù µû·Î Á¸ÀçÇÑ´Ù´Â °ÍÀ» ¾Æ¼Å¾ß ÇÕ´Ï´Ù. ½©¿¡ ÀÌ·± ¸í·ÉÀ» ÁÖ¸é ½©Àº fork syscall·Î ÀÚ±â ÀÚ½ÅÀ» º¹Á¦ÇÑ ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ Çϳª »ý¼ºÇÑ ÈÄ¿¡ exec syscall·Î find¸¦ ¼öÇàÇϵµ·Ï ÇÑ ´ÙÀ½¿¡ ³¡³ª±â¸¦ ±â´Ù¸³´Ï´Ù. ÀÚ½Ä ÇÁ·Î¼¼½º´Â ¿­½ÉÈ÷ µð·ºÅ丮¸¦ µÚÁö¸é¼­ Á¶°Ç¿¡ ¸Â´Â Ç׸ñÀ» ã¾Æ³À´Ï´Ù. ±×¸®°í ÁöÁ¤µÈ ¸í·ÉÀ» ¼öÇàÇÏ°Ô µÉÅÙµ¥, ¸¶Âù°¡Áö·Î fork/exec·Î ½©À» Çϳª ½ÇÇà½ÃÅ°¸é¼­ ¼öÇàÇÒ ¸í·É¾î·Î -exec ¿É¼ÇÀ¸·Î ÁÖ¾îÁø ¸í·É(cd)À» ÁöÁ¤ÇÕ´Ï´Ù. ±×·¯¸é ±× ½©Àº ¸í·ÉÀ» ¼öÇàÇÏÇÏ°í, ¼öÇàÀ» ¸¶Ä¡¸é ½©ÀÇ ÇÁ·Î¼¼½º´Â Á¾·áµË´Ï´Ù. ÀÌ ÀÛ¾÷À» Çϴµ¥ 1) ½©(´ëÈ­Çü), 2) find À¯Æ¿, 3) ½© ÀÌ·¸°Ô 3°³ÀÇ ÇÁ·Î¼¼½º°¡ ÀÖ¾ú´Âµ¥, ±× Áß¿¡¼­ µð·ºÅ丮°¡ ¹Ù²î´Â ÇÁ·Î¼¼½º´Â ½ÇÁ¦·Î cd¸¦ ¼öÇàÇÏ´Â 3¹ø ½© »ÓÀÔ´Ï´Ù. 1¹ø 2¹ø ÇÁ·Î¼¼½º´Â cd ¸í·É¿¡ ¾Æ¹«·± ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù. ¾î¶² ÀÛ¾÷À» Çؼ­ °á°úÀûÀ¸·Î ÇöÀç ½©ÀÇ µð·ºÅ丮°¡ ¹Ù²î°Ô ÇÏ·Á¸é ÇöÀç ½©ÀÌ cd ¸í·ÉÀ» ¼öÇàÇϵµ·Ï ¸¸µé¾î¾ß ÇÕ´Ï´Ù. Àû´çÈ÷ ½© ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ°í ÇØ´ç ½ºÅ©¸³Æ®¸¦ source·Î ½ÇÇàÇÏ¸é µÉ°Ì´Ï´Ù.

Àú¶û È°µ¿ Ä¿¹Â´ÏƼ°¡ Á» °ãÄ¡½Ã´Â °Í °°³×¿ä. ´«¿¡ ÀÍÀº ´Ð³×ÀÓÀÔ´Ï´Ù. ±×·¡¼­ µå¸®´Â ¸»¾¸Àε¥, Ä¿¹Â´ÏƼ¿¡¼­ Àڱ⠱ñÝÇÑ °Í¸¸ Áú¹®Çؼ­ ¾Ë¾Æ°¡°í ±× ¿ÜÀÇ È°µ¿Àº ÀüÇô ¾ø´Ù¸é Áú¹®À» Çϼŵµ ´äÇÏ´Â »ç¶÷ÀÌ ÀÚ²Ù ÁÙ¾îµé °Í °°½À´Ï´Ù.
     
Á¦°¡ Á» ¿ÀÁö¶ýÀÏ ¼öµµ Àִµ¥...
Áú¹®À» ÇÏ¸é ±×¿¡ ´ëÇÑ ´äÀ» ´Þ±â À§Çؼ­ ´äº¯ÀÚ´Â ¸Ó¸®¸¦ ¾²°í °øºÎ¸¦ Çϴϱî ÁÁÀº °ÍÀÌ°í
´äº¯¸¸ Àаí Áö¿ìÁö¸¸ ¾Ê´Â´Ù¸é ´©±º°¡ Áö³ª°¡´Ù°¡ ±ÛÀ» ÀÐ°í ¹è¿ï ¼ö ÀÖÀ¸´Ï ÁÁÀº °Ô ¾Æ´Ò±î¿ä?

"ü¸®¸¸ µû°¡´Â °Ç ¾Æ´Ï´Ù"¶ó´Â »ý°¢ÀÌ µé¾î¼­¿ä.

Àü fd¸¦ ½á º¸Áöµµ ¾Ê¾ÒÁö¸¸, (Àúµµ find¸¦ ÁÖ·Î ¾¹´Ï´Ù. find¿¡¼­ ³Ê¹« ±æ°Ô Ä¡´Â °Ô ±ÍÂú¾Æ¼­ ½ºÅ©¸³Æ®·Î wrapper¸¦ ¸¸µé¾î¼­ ¾²±âµµ Çß¾ú°í¿ä.)
À̹ø¿¡ »õ·Î ±ò¾Æº¸°í man pageµµ º¸°í °øºÎ¸¦ ÇÏ°Ô µÇ¾ú¾î¿ä. ±×¸®°í findº¸´Ù´Â °£´ÜÇÑ interface¿¡ ¾ÕÀ¸·Î À̰͵µ Á» ½á º¼±î ÇÏ´Â »ý°¢µµ µé¾ú°í¿ä.

±×·¯´Ï Á¦°Ôµµ µµ¿òÀÌ µÈ °ÅÁÒ.

Áú¹®¸¸ ÇÏ°í ´Ù¸¥ È°µ¿ ¾È ÇÑ´Ù°í ¹¹¶ó ÇϽñ⿡... ÀúÇÑÅ×µµ ÇØ´çÇÏ´Â ¸»Àΰ¡ ÇÏ´Â »ý°¢¿¡ ´ñ±Û¿¡ ´ëÇÑ ´ñ±ÛÀ» ´Þ°Ô µÇ¾ú½À´Ï´Ù.
 Àúµµ ÁÖ·Î ´ñ±Û¸¸ ´ÞÁö °Ô½Ã±ÛÀº ¾ðÁ¦ ¿Ã·È´ÂÁö ±â¾ïµµ ¾È ³ª³×¿ä. °¡ÀÔ ÈÄ ÇѵΠ¹ø Á¤µµ ¿Ã·ÈÀ» °Ì´Ï´Ù.

½Ãºñ °Å´Â °Ç ¾Æ´Ï°í ±×³É Á¦°¡ Á» Âñ·Á¼­ ÇѸ¶µð ¿Ã·Á º¾´Ï´Ù.
          
¿¹ ¹¹ ±×³É Á¦ »ý°¢ÀÏ »ÓÀÔ´Ï´Ù. ´Ù¸¥ ºÐµéµµ ´Ù ±×·¸°Ô »ý°¢ÇϽŴٴ °Ô ¾Æ´Ï°í¿ä.
fd-find ¸í·ÉÀÌ ¸ÂÁÒ? Á¦ PC¿¡¼­ µ¹¸° °á°ú¿Í ¾à°£ »óÀÌÇÏ°Ô ³ª¿Í¼­¿ä.
cd°¡ shell ³»Àå ¸í·ÉÀ¸·Î º°µµÀÇ cd¶ó´Â ½ÇÇà ÆÄÀÏÀÌ ¾ø¾î¼­ ãÀ» ¼ö°¡ ¾ø´Ù°í ³ª¿Í¾ß Á¤»óÀÎ °Í °°°Åµç¿ä.
[fd error]: Command not found: "cd" "xxxxx" ÀÌ·± ½ÄÀÇ Ãâ·ÂÀÌ ³ª¿À³×¿ä. ±Ùµ¥ ½Å±âÇÑ°Ô echo $?´Â °á°ú°¡ 0ÀÔ´Ï´Ù.

¿¹¸¦ µé¾î, ls´Â ¸í·ÉÀ̴ϱî cdÀÚ¸®¿¡ ls¸¦ ³ÖÀ¸½Ã¸é ÇØ´ç µð·ºÅ丮ÀÇ ³»¿ëÀ» º¸¿©ÁÙ °Ì´Ï´Ù.

cd¸¦ ¹Ù·Î ÇϽ÷Á¸é cd `fd -t d xxxxx` °°Àº ½ÄÀÌ·Î backquote¸¦ »ç¿ëÇÏ½Ã¸é µÇ±ä ÇÕ´Ï´Ù.
´Ê°Ô ³ª¸¶ ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù.

µµ¿ò ÁֽŠºÐ ´ö¿¡ ¾Æ·¡¿Í °°ÀÌ, .zshrc¿¡ ¼³Á¤ÇÏ¿© ÆíÇÏ°Ô Áö³¾ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.

 function fcd() {
  cd `/opt/homebrew/bin/fd  -t d $1`
 }

 function fls() {
  whence -f $1
 }


QnA
Á¦¸ñPage 263/5685
2014-05   4969056   Á¤ÀºÁØ1
2015-12   1505389   ¹é¸Þ°¡
2006-03   5286   ¹ÎºÀ±â
2006-12   5260   À̰ǹÎ
2003-10   9930   ¼Û½ÂÇö
2003-11   12361   ¹Ú¸íÈÆ
2004-11   7356   ¹Úµ¿¼±
2007-08   5393   ¹èÁؼ®
2007-01   4841   Á¤Å¼ö
2004-06   7824   ±è³«Ã¶
2004-02   9085   ³ª°­¹®
2005-02   6384   À±¿ëÀÏ
2005-03   7299   À±Á¾¿Ï
2002-06   16305   ÃÖâÇö
2004-11   7401   Á¤ÁØÈ£
2007-01   4719   ±èÁ¤È£
2003-07   8905   ÀÌ´ë¿­
2005-05   6304   ±è½ÂÈñ
2006-02   5919   ±èÁ¤È¯
2007-07   5344   ±èµ¿·Ä
2005-12   6286   À±È£¿ë
2003-06   10160   ±èÀÀ¶ô