1

ディレクトリ構造からファイル名を取り除き、そのディレクトリに cd するバージョンの cd を作成したいと考えています。

たとえば、(tc)シェルを入れた場合

cd /net/homes/me/myfile.jpg 

「myfile.jpg」を取り除き、ディレクトリ構造に移動します。私はこれが私の.cshrcであることを試しました:-

alias ccd '/net/homes/me/scripts/getDir.py'

次に、私の getDir.py ファイルは次のように読み取ります:-

#! /usr/bin/python

import sys
import os

def get_dir():
    the_dir = sys.argv[1]
    dir_split = the_dir.split("/")
    dir_count = len(the_dir.split("/"))

    file_count = len(dir_split[dir_count-1])
    only_dirs = the_dir[:-file_count]
    #print only_dirs
    os.chdir(only_dirs)


get_dir()

これにより、dir構造のファイル名部分がうまく削除されますが(printステートメントからわかります)、chdirコマンドは機能しないようです。

ありがとう!

4

2 に答える 2

2

chdir は呼び出しシェルの状態を変更しません。

エイリアスを次のように変更する必要があります (正確な tcsh 構文は不明です):

  alias ccd 'cd `getDir.py`'

次に、getDir スクリプトは正しいパス文字列を出力するだけです (chdir は必要ありません)。

于 2013-06-12T16:25:46.490 に答える