다른 폴더의 파일을 집계하는 폴더 만들기

다른 폴더의 파일을 집계하는 폴더 만들기

각 수업에 할 일 폴더가 있도록 여러 수업의 디렉토리를 정리하려고 합니다.

이 같은:

|--classes/
|  |--classOne/
|  |  |--todo/
|  |  |  |--read.pdf
|  |  |--otherFiles.md
|  |--classTwo
|  |  |--todo/
|  |  |  |--read.pdf
|  |  |--otherFiles.md
|  |--classThree
|  |  |--todo/
|  |  |  |--read.pdf
|  |  |--otherFiles.md

모든 개별 폴더의 데이터를 todo_buffer집계할 수 있는 이 계층 구조 외부에 폴더를 호출 하는 것이 가능한지 궁금합니다 .todo

단지 작은 응용 프로그램을 만드는 것도 가능합니다. 그런데 이 작업을 수행할 수 있는 UNIX 유틸리티가 있습니까? 나는 심볼릭 링크를 따라 생각하고 있습니다.

답변1

stow심볼릭 링크를 생성하고 유지 관리합니다. 업데이트하려면 실행해야 합니다. 그러나 를 사용하여 inotify-wait업데이트를 트리거할 수 있습니다.

답변2

#!/bin/sh

mkdir -p todo_buffer

for todo in classes/class*/todo/read.pdf
do
    class=${todo%/todo/read.pdf} # Get the name of
    class=${class#classes/}      # the class directory

    ln -s "../$todo" "todo_buffer/$class-read.pdf"
done

스크립트는 classes이 디렉터리의 상위 디렉터리에서 실행되어야 합니다. 디렉토리를 생성한 다음 각 클래스의 하위 디렉토리에 있는 파일의 경로 이름을 todo_buffer계속해서 반복합니다 .read.pdftodo

이는 classes디렉토리 아래의 디렉토리 구조가 표시된 것과 같고 각 클래스에 이름이 지정된 하위 디렉토리가 있다고 가정합니다 class<something>.

read.pdf파일에 대해 디렉토리에 심볼릭 링크가 생성됩니다 todo_buffer.

심볼릭 링크는 ../classes/.../todo/read.pdf링크를 기준으로 한 위치, 즉 을 가리킵니다. 링크의 절대 경로 이름이 필요한 경우 호출을 로 대체하세요 ../.$PWD/ln -s

다음 디렉터리와 파일이 제공됩니다.

.
|-- classes
|   |-- class-1
|   |   |-- otherFiles.md
|   |   `-- todo
|   |       `-- read.pdf
|   |-- class-2
|   |   |-- otherFiles.md
|   |   `-- todo
|   |       `-- read.pdf
|   `-- class-3
|       |-- otherFiles.md
|       `-- todo
|           `-- read.pdf
`-- script.sh

7 directories, 7 files

스크립트를 실행하면 다음이 생성됩니다.

todo_buffer/
|-- class-1-read.pdf -> ../classes/class-1/todo/read.pdf
|-- class-2-read.pdf -> ../classes/class-2/todo/read.pdf
`-- class-3-read.pdf -> ../classes/class-3/todo/read.pdf

0 directory, 3 files

답변3

귀하의 요청과 질문의 배경을 더 자세히 설명해 주시겠습니까?

  1. 모든 할일 폴더를 더 쉽게 채울 수 있도록 모든 할일 폴더를 채운 후 또는 전에 todo_buffer 폴더를 집계하는 "도구"를 사용합니까?

  2. 각 개별 할일 폴더에는 유사한 파일 이름(예제와 같이)이 포함되어 있지만 실제 내용은 서로 다른가요?

기호 링크는 여러분이 찾고 있는 것일 수 있지만(그러나 약간의 스크립트를 작성해야 할 것 같습니다) 실제로는 여러분이 달성하려는 목표에 따라 다릅니다.

심볼릭 링크는 복사 또는 이동과 동일한 논리로 작동합니다.

ln -s {src} {dst}        

여기서 {src}는 링크가 가리켜야 하는 파일이고 {dst}는 기호 이름입니다.

모든 파일이 todo_buffers에 있고 각 todo 폴더에 심볼릭 링크만 생성한다고 가정하면 다음을 수행합니다.

cd {some path}/classes/classOne/todo   
ln -s {path to todo_buffer}/todo_buffer/read.pdf  read.pdf  
cd {some path}/classes/classTwo/todo  
ln -s {path to todo_buffer}/todo_buffer/read.pdf  read.pdf  
cd {some path}/classes/classThree/todo  
ln -s {path to todo_buffer}/todo_buffer/read.pdf  read.pdf  
...  

관련 정보