linux의 stow 명령어는 symbolic links를 관리해 주는 명령어이다.

dotfiles을 관리에 자주 사용되고, 소프트웨어 패키지 설치 관리자 역할을 하기도 한다.

stow를 이용하면 ‘/usr/local/stow/’ 하위에 사용자가 컴파일 해서 사용하는 프로그램들을 만들어서 사용할 수 있게 된다.

요즘은 패키지 관리자들이 너무 잘 되어 있어서 굳이 패키지 관리 용도로 사용하는 모습은 잘 보이지 않는다.

기본 동작은 stow dir에서 지정된 이름의 디렉터리에 있는 파일을 현재 디렉터리 바로 위의 디렉터리에 링크한다.

stow를 사용할 때 주의 점은 디렉터리 구조가 목적에 맞게 미리 구성되어 있어야 한다.

이런 번거로움 때문에 최근에는 “ln -s” 같이 직접 link를 만들어 사용하는 모습도 많이 보인다.

기본 사용법

$> stow --restow --target=$XDG_CONFIG/nvim .
...
$> cd /usr/local/stow/ && sudo stow PACKAGE

help stow

$> stow --help
stow (GNU Stow) version 2.3.1

SYNOPSIS:

    stow [OPTION ...] [-D|-S|-R] PACKAGE ... [-D|-S|-R] PACKAGE ...

OPTIONS:

    -d DIR, --dir=DIR     Set stow dir to DIR (default is current dir)
    -t DIR, --target=DIR  Set target to DIR (default is parent of stow dir)

    -S, --stow            Stow the package names that follow this option
    -D, --delete          Unstow the package names that follow this option
    -R, --restow          Restow (like stow -D followed by stow -S)

    --ignore=REGEX        Ignore files ending in this Perl regex
    --defer=REGEX         Don't stow files beginning with this Perl regex
                          if the file is already stowed to another package
    --override=REGEX      Force stowing files beginning with this Perl regex
                          if the file is already stowed to another package
    --adopt               (Use with care!)  Import existing files into stow package
                          from target.  Please read docs before using.
    -p, --compat          Use legacy algorithm for unstowing

    -n, --no, --simulate  Do not actually make any filesystem changes
    -v, --verbose[=N]     Increase verbosity (levels are from 0 to 5;
                            -v or --verbose adds 1; --verbose=N sets level)
    -V, --version         Show stow version number
    -h, --help            Show this help

Report bugs to: bug-stow@gnu.org
Stow home page: <http://www.gnu.org/software/stow/>
General help using GNU software: <http://www.gnu.org/gethelp/>

TLDR

$> tldr stow

  stow

  Symlink manager.
  Often used to manage dotfiles.
  More information: https://www.gnu.org/software/stow.

  - Symlink all files recursively to a given directory:
    stow --target=path/to/target_directory file1 directory1 file2 directory2

  - Delete symlinks recursively from a given directory:
    stow --delete --target=path/to/target_directory file1 directory1 file2 directory2

  - Simulate to see what the result would be like:
    stow --simulate --target=path/to/target_directory file1 directory1 file2 directory2

  - Delete and resymlink:
    stow --restow --target=path/to/target_directory file1 directory1 file2 directory2

  - Exclude files matching a regular expression:
    stow --ignore=regular_expression --target=path/to/target_directory file1 directory1 file2 directory2

참고링크