
Portanto, meu gerenciador de arquivos parece não ter preservado a hierarquia de diretórios ao extrair um arquivo tar.xz. Agora minha pasta Downloads está bagunçada e cheia de arquivos que não estão em seus devidos lugares.
Quero excluir esses e somente os arquivos que estavam no arquivo para começar. Para fazer isso, estou tentando combinar as extremidades de cada caminho de arquivo na saída tar tf file.tar.xz
e excluir os arquivos associados.
Por exemplo, se a entrada for:
tor-browser_en-US/Browser/firefox
tor-browser_en-US/Browser/firefox.real
tor-browser_en-US/Browser/fonts/
tor-browser_en-US/Browser/fonts/Arimo-Bold.ttf
Quero que a saída seja:
firefox
firefox.real
Arimo-Bold.ttf
para que eu possa excluí-los.
Tenho tentado fazer isso, sed 's/.*\/([^\/]+)$/\1/'
mas isso dá o erro sed: -e expression #1, char 19: invalid reference \1 on 's' command's RHS
e não tenho certeza do que mais tentar.
Responder1
sed '/\/$/d; s|.*/||'
/\/$/d
remove qualquer linha com final /
. s|.*/||
remove tudo antes do último /
(se houver) e o /
próprio.