Linux命令在同一目录中浏览槽文件夹 腔室

问题描述

如果我具有以下结构:

directory/
 folder1/ <--
 folder2/
 folder3/
 ...

如何移动到下一个文件夹?不用做:

cd ../folderX

解决方法

如果您正在使用bash,则可以滥用bash数组并使用此小bash函数:

nextcd() {
    if [  $# -gt 0 ]; then
        _nextcd_dirs=("$@")
        _nextcd_root=$(pwd)
    fi
    cd "${_nextcd_root}"
    if [ -z "${_nextcd_dirs[0]}" ]; then
        echo "no more directories to change to" 1>&2
    else
        cd "${_nextcd_dirs[0]}"
        _nextcd_dirs=("${_nextcd_dirs[@]:1}")
    fi
}

用法

(每行的开头(直到$ ,包括nextcd)都是提示,指示您当前在文件系统上的位置;其余的行(以{开头{1}})是您正在运行的实际命令):

directory/$ nextcd folder1 folder2 folder3
directory/folder1/$ nextcd
directory/folder2/$ nextcd
directory/folder3/$ nextcd
no more directories to change to
directory/$

因此,第一行(nextcd folder1 folder2 folder3)调用要迭代的所有目录的函数。您可以使用通配符(nextcd */),但请记住,脚本在尝试将其更改之前不会检查参数是否为实际目录。

它将立即更改为第一个参数。

无论何时调用nextcd没有任何参数),它都会进入下一个原始参数(从列表中删除),直到列表为空(在这种情况下)它将打印出错误并返回到原始目录。

每当您使用参数{strong}调用nextcd时,旧目录都将被忘记,而您将重新开始。

参数不必位于同一目录中

nextcd /tmp ~ /usr/bin/

,并且可以重复:

nextcd folder1 /tmp folder1 folder2

腔室

它仅在当前shell中用作功能(因此您无法创建为您执行此操作的 script

,

您可以使用历史记录选项:

只需按向上箭头键,即可在命令行中使用先前访问的目录调用cd命令。一直按向上箭头键,直到看到您需要的先前访问的目录,然后按[Enter]。

您可能想利用非常方便的推入功能。 Pushd使您可以创建目录位置的堆栈(保存在内存中的列表)。

您可以通过此article进行阅读,其中提供了有关推送功能的更多信息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...