我已经阅读了这个问题和答案,但它并不适合我的问题,即使它很相似。
我正在编写一个脚本(称为 cpj),它将启动我当前的项目之一。我有大约 5 个。当我打字
$ cpj blah
我希望当前工作目录更改为 blah 项目目录(我保存在 $PROJDIR 中),并且我希望 emacsclient 打开该项目的主文件(我保存在 $MAINFILE 中)。
我引用的问题说你不能直接改变运行脚本的 shell 的环境,但你可以获取一个脚本,它会这样做。
为了测试这一点,我编写了一个 shell 脚本(称为 chcwd),其中有一行:
cd $1
如果,从命令行我做:
$ . chcwd $PROJDIR
我当前的工作目录将根据需要更改。另一方面,如果从我的 cpj 脚本中,我有相同的行:
. chcwd $PROJECT
它不会改变 shell 的当前工作目录。我意识到我正在运行 2 个脚本(cpj,然后是 chcwd),因此创建了 2 个 shell,但我看不出有什么办法可以完成我想要的。谁能告诉我如何实现我的目标?
我需要创造一个解压缩后的结果保存的目录结构的ZIP压缩文件从指定的目录下。我还需要在不实际切换到目录的情况下执行此操作。
我的问题是类似的,以本。在阅读了大量有关该问题的内容后,我觉得没有任何内容完全回答了我的问题。
例如,我有:
/tmp
/sub_dir
/相关目录
/子文件夹_1/
东西.pdf
东西.xls
/sub_folder_2/
东西.pdf
东西.xls
/sub_folder_3/
东西.pdf
东西.xls
我需要能够执行zip -r /tmp/sub_dir/pertinent_dir.zip /tmp/sub_dir/pertinent_dir/*这样的结果只包含pertinent_dir和以下。同样,无论我当前的目录上下文如何,我都需要这样做。我试过了-j,但这似乎不起作用。也许这是不可能的。有什么我想念的吗?
我们有很多有用的文件夹,它们位于不同的路径中,用于我们在 Linux 中的工作。
例如 :
$ cd ~/Documents/Courses/EDX/physics2013/$ cd ~/Documents/Company/OpenGL/Proj/...$ cd ~/Documents/Freelance/Android/Proj/.......
如何创建一些可以使用的短路径
$ cd edxPhy2013$ cd cglProj-v-2.13$ cd flAndrProj-v-1.1我试图cd进入一个名为-我为实验而创建的目录。我不能从 Bash。我怎么cd进去?
使用 Ubuntu 13.10 上的 Nautilus,我可以轻松地做到这一点,甚至可以毫不费力地在其中创建文件。我做了谷歌搜索,这是我得到的。这涵盖了目录以, like开头的情况,但不包括整个名称为一个的情况。即使我也无法从 Nautilus 中删除它。--test-rm
cat test.txt >-将文本从 复制test.txt到名为 的文件中-,但cat - >test2.txt会执行正常情况下的操作,即从stdininto复制输入test2.txt,而不是从文件 中复制输入-。
为什么 Nautilus 没有这个问题,而 bash 呢?
所以,我正在通过 ssh 在远程服务器上工作,我每天登录和退出数十次,我想在cd登录后立即将 bash转到我选择的默认目录,但我不'实际上不想改变用户主页。有没有简单的方法可以做到这一点?
明确地说,我想要的是看到,比如说,~/foo/bar/当我登录时,而不是~/,并且可以选择随意更改默认值,而不必担心危险的usermod疯狂。
这并不重要,但肯定会很方便。
我正在尝试将我的目录更改为 /boot/efi,但运行sudo cd /boot/efi没有任何作用。我在 Fedora 23 上。是否有更强大的命令?
当我运行此命令时,它可以工作:
$ find . -inum 888696 -exec ls '{}' \;
Conversation.pst Outlook Data File Outlook Data File.sbd Trash Unsent Messages
Inbox.pst Outlook Data File.msf Sent.pst Trash.msf Unsent Messages.msf
Run Code Online (Sandbox Code Playgroud)
然而,当更换ls与cd它不工作:
$ find . -inum 888696 -exec cd '{}' \;
find: ‘cd’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我知道cd是一个bash内置的,所以我想这里面确实没有任何工作:
$ find . -inum 888696 -exec builtin cd '{}' \;
find: ‘builtin’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如何cd与find -exec …
我想创建一个单向符号链接,即我可以使用它转到目标目录,但无法返回。
假设有一个目录,D其中包含两个子目录S1和S2. 我想创建一个链接S1,它指向S2(比方说ls2 -> ../S2/)。如果我这样做cd ls2,然后cd ..然后,我想去D和不S1。
是否可以?
尝试安装我构建的软件包时,从 libtool 得到这个非常奇怪的错误。它src/api在源代码树的子目录 ( ) 中运行时发生:
make[5]: Leaving directory '/users/galac/embray/src/slurm/src/api'
/bin/mkdir -p '/usr/local/lib'
/bin/bash ../../libtool --mode=install /usr/bin/install -c libslurm.la '/usr/local/lib'
../../libtool: line 929: cd: ../..: Not a directory
Run Code Online (Sandbox Code Playgroud)
的相关部分libtool如下所示:
914 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
915 # is ksh but when the shell is invoked as "sh" and the current value of
916 # the _XPG environment variable is not equal to 1 (one), the special
917 # …Run Code Online (Sandbox Code Playgroud) 我有以 开头的目录,164但它们根据最后几位数字而有所不同。如果不是最后一位数字本身,我想根据最后几位数字 cd 进入一个目录,比如9vs 8。目录的最后一位数字是唯一的。有可能这样做吗?当我从第一个数字开始时,自动完成列出了许多可能性164。