Das ist es, was bei mir funktioniert.
tar -cvf my_dir.tar.gz -C /my_dir/ $(find /my_dir/ -maxdepth 1 -printf '%P ')
Sie können auch Folgendes verwenden
tar -cvf my_dir.tar.gz -C /my_dir/ $(find /my_dir/ -mindepth 1 -maxdepth 1 -printf '%P ')
Im ersten Befehl, finden. gibt eine Liste von Dateien und Unterverzeichnissen von Mein_Verzeichnis . Allerdings ist das Verzeichnis Mein_Verzeichnis selbst als "." in dieser Liste enthalten ist. Die -printf Parameter entfernt den vollständigen Pfad einschließlich des '.' und auch alle crlf Doch die Raum in der Formatzeichenkette '%P ' de printf hinterlässt ein Überbleibsel in der Liste der Dateien und Unterverzeichnisse von Mein_Verzeichnis und ist an einem führenden Leerzeichen im Ergebnis der finden. Befehl.
Für TAR ist das kein Problem, aber wenn Sie das beheben wollen, fügen Sie -Gewinntiefe 1 wie im zweiten Befehl.