在UNIX中,在一行中将所有存档提取到它们自己的文件夹中的更好方法

在UNIX中,在一行中将所有存档提取到它们自己的文件夹中的更好方法,unix,sh,Unix,Sh,我已经以我不满意的方式完成了这项任务: for i in *.*; do mkdir "${i}"_; 7za x "${i}" -o"${i}"_; done 必须有更好的方法来做到这一点,对吗?如果是,是什么? 成功的要素: 必须是一行 必须是非交互式的 必须将所有存档解压缩到其自己的文件夹中 谢谢 您对什么不满意?文件夹名称后的下划线。当我试图省略它时,我犯了一个错误。我认为这与档案的名称相同有关。我错了吗?我的错误是由我的摆弄修复的其他错误?嗯,在同一个目录中不能有两个同名的文件。

我已经以我不满意的方式完成了这项任务:

for i in *.*; do mkdir "${i}"_; 7za x "${i}" -o"${i}"_; done
必须有更好的方法来做到这一点,对吗?如果是,是什么? 成功的要素:

  • 必须是一行
  • 必须是非交互式的
  • 必须将所有存档解压缩到其自己的文件夹中

谢谢

您对什么不满意?文件夹名称后的下划线。当我试图省略它时,我犯了一个错误。我认为这与档案的名称相同有关。我错了吗?我的错误是由我的摆弄修复的其他错误?嗯,在同一个目录中不能有两个同名的文件。这很有趣-即使其中一个是目录?在Windows中,情况并非如此。当然,Windows和UNIX是不同的。我想我也不知道这个区别。在Windows中也不能有。如果您认为您在同一位置有一个文件和一个同名目录,那么您就被一个隐藏部分文件名的文件管理器误导了(即,该目录名为
foo
,该文件名为
foo.zip
,但文件管理器对您隐藏了
.zip
)。