Wenn Sie find
vom gewünschten Stammverzeichnis aus starten und in find
den Optionen keinen absoluten Startpunkt angeben, werden relative Pfade zu den von ihm erstellten tar
Befehlsaufrufen ausgegeben . So wie:
cd $rootDir find . -name '*doc' -exec tar rvf docs.tar {} \;
Wenn Sie das aktuelle Arbeitsverzeichnis nicht dauerhaft ändern möchten und bash
ähnlich wie Ihre Shell verwenden, können Sie dies tun
pushd $rootDir find . -name '*doc' -exec tar rvf docs.tar {} \; popd
stattdessen.
Beachten Sie, dass Pushd / Popd nicht in allen Shells vorhanden ist. Überprüfen Sie die entsprechende Manpage. Sie sind in bash, aber nicht bei der Umsetzung Basis sh so während explizit mit /bin/bash
können Sie sich auf sie verlassen kann man nicht, wenn ein Skript für fragt /bin/sh
stattdessen (wie dies auf eine kleinere Schale abbilden, die nicht bash Erweiterungen hat)