Подтвердить что ты не робот

Команда для поиска всех открытых файлов в текущем каталоге рекурсивно

Что такое команда clearcase, чтобы найти все личные файлы представления в текущем каталоге рекурсивно?

4b9b3361

Ответ 1

Обычные команды основаны на cleartool ls:

  • ct lsprivate: но это только для динамических представлений, а не для снимков снимков
  • ct ls -rec -view_only: по крайней мере, он работает как в моментальном снимке, так и в динамических представлениях

Однако оба списка также содержат извлеченные файлы.

Если вам нужны только личные файлы, т.е. пропущенные захваченные/затменные/извлеченные и символические ссылки, вам необходимо отфильтровать их.

В Windows это будет:

for /F "usebackq delims=" %i in (`cleartool ls  -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do @echo "%i"

В Unix:

cleartool ls -rec | grep -v "Rule:" | grep -v "hijacked" | grep -v "eclipsed" | grep -v "-->" | xargs echo

Ответ 2

В случае, если кто-то еще прочитает этот вопрос, это решение VonC windows с несколькими незначительными изменениями для запуска в виде окон script:

@echo off
setlocal
for /F "usebackq delims=" %%A in (`cleartool ls  -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do @echo "%%A"

Замените @echo на rmdir /S /Q и del /F, чтобы выполнить фактические удаления, как описано здесь. Таким образом, окончательный script:

@echo off
setlocal
for /F "usebackq delims=" %%A in (`cleartool ls  -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do rmdir /S /Q "%%A"
for /F "usebackq delims=" %%A in (`cleartool ls  -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do del /F "%%A"

Если вы сохраните файл .bat под элементом просмотра, который вы очищаете, script очистит, также удалив: -)

Ответ 3

Я изменил версию @MilesHampson, так как это вернуло мне слишком много результатов, и я хочу запустить это как пакетный файл.

Мои новые файлы не будут находиться в папке debug или obj, и поэтому мне не нужно видеть никаких результатов для этих папок... Я также работаю только на С#. Так что все, что мне нужно увидеть.

@echo off
setlocal

@echo Searching, please wait as this can take a while...

for /F "usebackq delims=" %%A in (`cleartool ls  -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->" ^| find /V "obj" ^| find /V "debug"`) do  ( 
  if "%%~xA"==".cs" echo %%A
  )
)

@echo === === === === === Search Complete === === === === === === 

pause

Создайте файл bat с указанным выше, поместите его в корневую папку проекта и запустите его. Он отобразит те, которые не находятся в контроле источника.

Ответ 4

В случае, если кто-нибудь еще прочтет этот вопрос, это решение VonC Unix с несколькими незначительными изменениями для запуска под Cygwin в Windows.

В Cygwin:

cleartool ls -rec | grep -v "Rule:" | grep -v "hijacked" | grep -v "eclipsed" | grep -v -- "-->" 

Линия Cygwin похожа на Unix, заданную VonC, но обратите внимание, что требуется двойная тире в последнем grep (и xargs не требуется).

Ответ 5

ct lsprivate -other 

Отфильтровать также извлеченные файлы

ct lsprivate -co: список всех извлеченных файлов

ct lsprivate -do: список всех файлов производных объектов

ct lsprivate -other: список всех других личных файлов

Ответ 6

Я следил за всеми вышеперечисленными решениями, и это отличная команда. У меня было еще несколько требований, которые не были рассмотрены выше, поэтому я немного изменил script с дополнительными точками

  • Исключенный командный файл из списка (в противном случае текущий пакетный файл также входит в список)
  • Удален каталог из списка, как обычно меня интересует файл

  • Специально для Java-разработчика исключены целевые папки и файлы jar поскольку они обычно не проверяются в

  • Удалено .classpath,.project и .settings, которая специфична для Eclipse (если они одинаковы уровень как проект/модули)

    @echo off
    setlocal
    
    @echo.
    @echo Searching, please wait as this can take a while...
    @echo.
    for /F "usebackq delims=" %%i in (`cleartool ls  -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->" ^| find /V ".settings" ^| find /V "jar" ^| find /V "keep" ^| find /V "target" ^| find /V ".classpath"  ^| find /V ".project" ^| find /V "%~n0" `) do ( if not exist %%i\* @echo "%%i")
    
    @echo.
    @echo === === === === === Search Complete === === === === === === 
    @echo.
    @echo.
    
    pause