안녕하세요. 이번 시간에는 linux의 mv 명령어에 대해 알아보겠습니다. 깊게 들어가지는 않고, 필요한 것만 간략하게 추려보도록 하겠습니다. mv는 파일을 이동하거나, 혹은 이름을 바꿀 수 있는 명령어입니다. 여담으로 mv 명령어를 strace로 추적해 보면, rename, renameat2 등을 호출하고 있음을 볼 수 있긴 합니다. 이건 그냥 이렇구나 정도로만 보시고 넘어가시면 될 듯 합니다. 이번에 실습할 것들입니다. 현재 작업 디렉토리에 test1 디렉토리와 test2 디렉토리가 있습니다. 그리고, test1 디렉토리 밑에 1.txt, 2.txt가 있고, test2 디렉토리가 있습니다. test2 밑에는 또 다시 1.txt와 2.txt가 있습니다. Makefile을 제외하고 모든 파일은 비어 있습..
리눅스 검색 결과
안녕하세요. 이번에는 touch 명령어에 대해 알아보겠습니다. 먼저 touch는 파일의 timestamp를 바꿉니다. 설명을 보면, access와 modification time을 바꾼다고 되어 있어요. 여기서 접근 시간이랑 수정 시간이랑 구분하는 것이 중요해요. 파일을 읽기만 하면 access한 시간만 업데이트 되지만, 수정을 하면 수정 시간까지 같이 업데이트가 되는 셈입니다. 여기서 질문. 빈 파일인 1.txt를 vi로 열었습니다. 그리고 1을 적은 다음에 wq:를 입력해서 나갔습니다. 이 경우, 접근 시각과 수정 시각이 같이 업데이트 됩니다. 기본적으로 touch는 atime, mtime을 업데이트 합니다. -a 옵션을 주면 접근 시각만 업데이트 할 수 있어요. 그럴 때 어떻게 되는지 보겠습니다. ..
리눅스에서 mkdir는 디렉토리를 만드는 명령어입니다. 말 그대로 mkdir DIRECTORY는, DIRECTORY를 생성하는데 없으면 생성합니다. 있으면 어떻게 될까요? 혹은, 디렉토리를 만들려고 하는데 parent directory가 없는 경우에 어떻게 될까요? 이 케이스들을 각각 보면서 -p 옵션에 대해 이해해 보도록 하겠습니다. 먼저 -p는 이미 디렉토리가 존재하는 경우, 에러를 떨어트리지 않습니다. 그리고, 필요한 경우에 부모 디렉토리를 만듭니다. 이걸 역으로 보면 -p가 없다면 디렉토리가 존재하는 경우에 에러를 떨어트립니다. 그리고, 필요한 경우에 부모 디렉토리를 만들지 않을 겁니다. 현재 저는 test3에 들어와 있습니다. mkdir t1으로, 디렉토리 t1을 만들었습니다. 그 다음에 tre..
랜덤한 문자열을 뽑고 싶습니다. 어떻게 하면 좋을까요? python에서는 random.choices와 비슷하게 뽑고 싶다는 이야기입니다. 즉, 같은 문자가 여러 번 나와도 됩니다. 이 때 쓸 수 있는 것이 /dev/random, /dev/urandom을 이용하는 방법입니다. 그러면, 이런 이상한 문자들이 끝도 없이 생성됨을 알 수 있어요. 이들을 적절히 정제한 다음에 상위 x개만 자른다면 비슷한 기능을 구현할 수 있겠네요. 여담으로, /dev/urandom의 file type을 보면 character special이라고 되어 있네요. 문자열 중에서 특정 문자만을 삭제하는 경우 tr 명령어를 잘 쓰게 되는데요. -c 옵션을 붙이면 complement를 의미합니다. 반전의 의미입니다. 예를 들어, ^%123..
리눅스 shuf 명령에 대해서 간단하게 알아보겠습니다. shuf는 random한 permutation을 생성합니다. 예를 들어, [1, 2, 3, 4, 5]가 있으면 [2, 1, 3, 5, 4]가 나올 수도 있고, [2, 3, 1, 4, 5]가 나올 수도 있어요. 이를 이용합니다. 먼저 -i 옵션을 보겠습니다. LO-HI를 주면, LO-HI까지의 각각의 숫자를 input line으로 간주해요. 다음에 -n은 출력하는 줄 수를 지정하는데요. 1부터 46까지 숫자 중에 6개를 중복 없이 뽑아보겠습니다. 이 경우, shuf -i 1-46 -n 6을 입력하시면 됩니다. 수 1부터 46까지를 input으로 간주하고, 6개를 뽑습니다. 즉, 1 ~ 46중 6개를 뽑는 것과 같아요. 이제 -e 옵션을 볼게요. -e는..
최근댓글